6、接口
6.1 引入
接口是抽象的,用于部分特殊的可以实现的功能
其实就是给类连上一个特殊功能
6.2 关键字 interface
格式:interface 接口名{}
类实现接口用关键字:implements
class 类名 implements 接口名{}
6.3 接口不能实例化,要按照多态的方式来实例化,由此可见有三种多态
- 具体类多态,几乎不用
- 抽象类多态,常用
- 接口多态,最常用
6.4 接口的子类
- 可以是抽象类,但意义不大
- 可以是具体类,但要重写接口中所有的抽象方法
6.5 接口的成员特点
- 成员变量
接口中的变量默认是常量,不可二次赋值,并且是静态的,你不加关键字,他也是默认的final,static - 构造方法
没有构造方法
但不会影响子类访问父类数据,因为所有的类都默认继承自Object类,且Object类有无参构造 - 成员方法
默认是抽象的,公共的
6.6 三大关系
- 类与类
继承关系,可以单继承,多层继承 - 类与接口
实现关系,可以单实现,多实现 - 接口与接口
继承关系,可以单继承,多继承
6.7 接口与类的区别
- 成员区别
见成员特点 - 关系区别
见三大关系 - 设计理念不同
抽象类体现的是“is a”而接口体现的是“like a”
抽象类定义的是该继承体系的共性功能,而接口定义的是该继承体系的扩展功能