1、接口是什么?
生活中,usb(传输数据,充电),指纹(解锁,支付),wifi(传输数据,上网)就是接口!!
简单理解接口:就是描述了一套
抽象功能的集合,就是能完成的事情,但是不做实现!!!
2、抽象类接口对比
抽象类:部分实现+部分抽象
接口: 全部抽象(公共抽象方法、公共静态常量数据)
注意!接口:只是描述成员功能,不描述成员数据。
3、超类型定义为抽象类还是接口?怎么选择?
抽象类: 子类是什么(抽象类),有数据也有功能,有抽象有实现,子类只能继承一个类
接口:子类能做什么,有什么功能(接口),只有抽象功能,子类可以实现多个接口
4、 怎么使用接口
*
* 定义接口的语法
* 位置:与类和其他接口同级别
* interface 接口名{
* //接口的内容
* //a)公共的静态的常量(一般不使用)
* //b)公共的抽象的方法
* }
* 公共的静态的常量的语法:
* public static final 数据类型 常量名[=值]...;
* 注意点:【public static final】可以不写,不写,默认加上
*
* 公共的抽象的方法的语法:
* public abstract 返回值类型 方法名(参数列表);
* 注意点:【public abstract】可以不写,不写,默认加上
*
*
* 有接口之后类型之间的关系
*
* 1)类和类:类可以单继承类,继承之后,子类可以获取超类型(类)的【功能和数据】
* 语法:
* class 子类 [ extends 父类]{}
* 2)类和接口:类可以多实现接口,实现之后,子类可以获取超类型(接口)的【功能】
* 语法:
* class 子类 [ extends 父类][implements 父接口1,父接口2... ]{}
* 3)接口和接口:接口可以多继承接口,继承之后,子接口可以获取超类型(接口)的【功能】
* 语法:
* interface 子接口 [ extends 父接口1,父接口2...]{}
5、加入接口之后,类型之间的超类型和子类型的关系
*
*
* 类:CA,CB,CD,CE
*
* 接口:IA,IB,IC,ID,IE
*
* 类和类的关系:
* CA,CB继承CD类
*
* 类和接口的关系
* CD类实现了IA,IB,IC接口
* CE类实现了IC接口
*
* 接口和接口的关系
* IC接口继承了ID,IE接口
*
* 超类型和子类型的关系--》画图分析
*
* a)
* 假设IE为超类型:
* -》子类型:IC,CE,CD,CA,CB
*
* b)
* 假设CE为子类型:
* -》超类型:IC,ID,IE
*
* 多态里语法--》超类型引用 可以指向 子类型的对象
* -》接口同样使用
6、 需求(面向超类型编程):
1)定义方法,实现让所有支持指纹功能的手机进行指纹支付
过程:a)打开手机app b)指纹支付 c)退出app
2)定义方法,实现让所有支持充电的手机进行充电
过程:a)连接手机充电线 b)充电 c)充电完成断开充电线
3)定义方法,实现让所有支持(充电和传数据)的手机进行,先充电,再传数据。
过程:a)连接手机充电线 b)充电 c)传数据 d)断开充电线