一、接口基本语法

  1. 接口是一种“引用数据类型”
  2. 接口是完全抽象的,就可以看作是一个特殊的抽象类
  3. 接口怎么定义:[修饰符列表] interface 接口名{}
  4. 接口和接口之间支持多继承
  5. 接口中只有常量+抽象方法
  6. JDK8中,接口中的方法可以被default和static修饰,但是,被修饰的方法必须有方法体!!!
  7. 接口中所有元素都是public修饰的
  8. 接口中抽象方法的public abstract可以省略
  9. 接口中常量的public static final可以省略
  10. 接口中方法不能有方法体(因为是抽象方法)
  11. 一个非抽象的类,实现接口的同时,必须将接口中的所有方法实现
  12. 一个类可以实现多个接口
  13. extendsimplements可以共存,extends在前,implements在后
  14. 使用接口写代码的时候,可以使用多态(父类型引用指向子类型对象,面向接口编程)

    二、接口在开发中的作用

  • 面向接口编程,可以降低程序的耦合度,提高程序的扩展力。符合OCP开闭原则。
  • 接口的使用离不开多态机制(接口+多态才可以达到降低耦合度
  • 接口可以解耦合,解开的是谁和谁的耦合!!!

    • 任何一个接口都有调用者和实现者: 接口可以将调用者和实现者解耦合;调用者面向接口调用,实现者面向接口编写实现。

      三、类型与类型之间的关系

  • is a(继承):extends

  • has a(关联):通常以“属性”的形式存在
  • like a(实现):implements

    四、抽象类和接口的区别

    | 抽象类 | 接口 | | —- | —- | | 半抽象 | 完全抽象 | | 有构造方法 | 没有构造方法 | | 类和类之间只能单继承 | 接口和接口之间支持多继承 | | 一个抽象类只能继承一个类 | 一个类可以同时实现多个接口 | | | 接口中只允许出现常量和抽象方法 |