莫子是接口(interface)?

接口是莫?

接口(interface)是一种重要的实现运行时多态的方式,是一种协议,它规范了传入的对象所必须具备的某些特征,从而保证在调用时既不会发生错误又不需要提前检查。虽然继承(extends)也能起到相同的效果,但是很多场景下使用继承会导致逻辑关系混乱,不利于抽象

接口(interface)是抽象方法和常量值的定义的集合。
从本质上讲,接口(interface)是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。实现接口类:
                                             class classname(类名) implements Interface1(接口名){}
一个类可以实现多个接口,接口也可以继承其它接口。
接口(interface)是与类并行的概念

  • 接口可以看出是一个特殊的抽象类。是常量与抽象方法的一个集合。不能包含变量、一般的方法。
  • 接口是没有构造器(参考上一章博客)的。
  • 接口定义的就是一种功能。此功能可以被类所实现(implenmets)。
    比如:class 类名 extends 类名 implements 接口名
  • 实现接口的类,必须要重写其中的所有抽象方法,方可实例化。若没有重写,则此类仍为一个抽象类
  • java中类可以实现多个接口,而继承是单继承的。
  • 接口与接口之间也是继承的关系,而且可以实现多继承。

接口格式:

  public interface 接口名{
        //定义常量
        //定义抽象方法
  }

//常量注意事项:
//     public static final修饰可省略,注意:不写也照样表达这个意思。
//     接口当中的常量,必须进行赋值:不能不赋值。
//     接口中常量的名称,使用完全大写的字母,用下划线进行分隔。(推荐这种命名规则)

//抽象方法注意事项:
//     在接口中的抽象方法必须定义为 public 访问权限,这是绝对不可改变的

//     在接口中如果不写 public,则也是 public 访问权限
//因为很多的Java程序,经常可以看到编写接口方法时,省略了public,不管写不写接口中的方法都是public          

接口的实现类格式:

  public class 类名  implements 接口名{
       //实现/重写接口的方法
       //定义普通
  }


接口的创建及使用

//接口的定义

interface Chen{
    public static final String LANGUAGE = "Java"; //定义全局常量
    public abstract void print();     //定义抽象方法
    public abstract String getInfo(); //定义抽象方法
}

//上下两个接口定义的功能是一致的,下面是简化版

interface Chen{
    String LANGUAGE = "Java"; //定义全局常量
    void print(); //定义抽象方法
    String getInfo(); //定义抽象方法
}
//与抽象类一样,接口若要使用也必须通过子类,子类通过 implements 关键字实现接口
//实现接口:
//        class 子类 implements 接口A,接口B,...{}

interface Song{
    String LANGUAGE = "Java";
    void print();
    void getInfo();
}
interface Chen{
    void say();
}
class Yang implements Song,Chen{
    public void say(){
        System.out.println("覆写 Chen 接口中的抽象方法");
    }
    public void getInfo(){
        System.out.println("覆写 Song 接口中的抽象方法");
    }
    public void print(){
        System.out.println("覆写 Song 接口中的抽象方法");
    }
}

public class Test{
    public static void main(String[] args) {
        Yang yang = new Yang();
        yang.say();
        yang.print();
    }
}

使用接口的好处

  • 扩展类的功能
  • 接口实现了多重继承,实现类和任何实现接口子类的通信和交互
  • 接口更灵活,开发中常用

今天的总结就到这里,如果总结有错,希望大佬指点,希望能够和诸位一同努力进步,努力学习。感谢大家的支持。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值