一、接口基本语法
- 接口是一种“引用数据类型”
- 接口是完全抽象的,就可以看作是一个特殊的抽象类
- 接口怎么定义:[修饰符列表] interface 接口名{}
- 接口和接口之间支持多继承
- 接口中只有常量+抽象方法
- JDK8中,接口中的方法可以被default和static修饰,但是,被修饰的方法必须有方法体!!!
- 接口中所有元素都是public修饰的
- 接口中抽象方法的public abstract可以省略
- 接口中常量的public static final可以省略
- 接口中方法不能有方法体(因为是抽象方法)
- 一个非抽象的类,实现接口的同时,必须将接口中的所有方法实现
- 一个类可以实现多个接口
- extends和implements可以共存,extends在前,implements在后
- 使用接口写代码的时候,可以使用多态(父类型引用指向子类型对象,面向接口编程)
二、接口在开发中的作用
- 面向接口编程,可以降低程序的耦合度,提高程序的扩展力。符合OCP开闭原则。
- 接口的使用离不开多态机制(接口+多态才可以达到降低耦合度)
接口可以解耦合,解开的是谁和谁的耦合!!!
is a(继承):extends
- has a(关联):通常以“属性”的形式存在
- like a(实现):implements
四、抽象类和接口的区别
| 抽象类 | 接口 | | —- | —- | | 半抽象 | 完全抽象 | | 有构造方法 | 没有构造方法 | | 类和类之间只能单继承 | 接口和接口之间支持多继承 | | 一个抽象类只能继承一个类 | 一个类可以同时实现多个接口 | | | 接口中只允许出现常量和抽象方法 |
