• 接口定义一种规范,规定某一批类里必须提供某些方法,要求这些类必须完全实现接口里所定义的全部抽象方法,从而实现接口中定义的功能。

语法格式

成员特点

  • 没有构造器,不能实例化
  • 成员变量默认都使用 static final 修饰,全局静态常量
  • 抽象方法默认都使用 public 修饰,公共的抽象方法,所以实现类中的实现方法必须使用public修饰(接口里定义的方法一般不写修饰符)
  • 内部类默认都使用 public static 修饰,公共的静态内部类
  • 接口中的默认方法不需要实现类实现

关系

  • 接口与接口之间继承关系,支持多继承

行为多继承的冲突解决规则

  • 默认方法可以用于创建可选方法和行为的多继承
  • 如果一个类使用相同的函数签名从多个地方(比如另一个类或接口)继承了方法,通过三条规则可以进行判断:
    • 类或父类显式声明的方法,其优先级高于所有的默认方法
    • 如果无法依据第一条进行判断,那么子接口的优先级更高:函数签名相同时,优先选择拥有最具体实现的默认方法的接口,即如果 B 继承了 A,那么 B 就比 A 更加具体。

接口多态声明方式

接口和抽象类

  • 接口体现的是一种规范,抽象类体现的是一种模板式设计