接口
| 一、接口定义:形式上是一种特殊类 |
![]() |
|
1、接口定义 【】在形式上,接口是一种特殊的抽象类 【】编译完interface Xxx后得到Xxx.class文件。
|
|
2接口内部常见成员:全局常量、抽象方法。两者有其固定的修饰符。
【】接口中成员权限都是最大的,所以都有public修饰符 |
|
【】因为接口里面格式是固定的,程序员不写jvm也会加上去,所以理论上可以省略其固定格式,只写最简洁的。 但是为了阅读性,这些修饰符都要写上。(不写,函数容易重写时忘记加修饰符,属性容易忘记可以类名调用)
|
| 二、接口---实现implement |
|
【】抽象类叫做继承,接口interface叫做实现。 抽象类里面除了抽象方法,还有些不抽象的函数。 接口里面全都是抽象函数,都需要去实现去覆盖 【】类与类继承关系extends,类与接口就是实现implements(实现,执行,完成) |
|
【】Demo是接口,DemoImpl是实现接口的子类,都具备用类名调动静态成员的功能。 【】d是对象,对象对静态非静态成员都可以调动
|
| 三、接口-多实现 |
| 【】接口出现的好处,实现了多继承机制的改良--多实现
【】实现接口,就要把每个接口里面的抽象方法都重写
|
|
【】多继承之所以禁止,是因为调用方法不明确,方法体{}各异 但是多接口可以,因为接口内部的抽象方法只有声明没有方法体,不存在调用不明确的问题,所以可以做到多接口。 在子类里面,重写的方法会覆盖多接口的所有同名抽象函数。 |
| 四、 |
![]() |
![]() |
|
【】一旦想要对一个类进行扩展,可以随时通过接口来办; |
|
【】类和类之间是继承关系,类和接口之间是实现关系。 【】接口和接口之间是继承关系,而且可以多继承
多继承问题在于方法体,而接口内的方法没有方法体,所以接口可以多继承。 |
![]() |
| 五、接口的特点 |
![]() |
|
【】类似于笔记本电脑上的接口,可以连接鼠标 【】凡是对外暴露的规则都可以称为接口。规则就是方形口,是圆形口就进不来。 对外提供的规则就是接口的特性。接口时对外提供的规则。 【】有了这个接口,笔记本和鼠标联系降低,由直接焊死在笔记本内部到可以拔插。 降低紧密联系程度,就是降低耦合性。降低不是没有。 【】usb口不仅插鼠标,还可以查键盘。u盘。提高笔记本功能扩展性。 有接口,可以零部件升级更新,而不用整体废弃 |
| 六、接口和抽象类差异 |
![]() |
|
【】这个接口不仅仅指的是是java中的interface,只得更是广泛的东西。 广义性理解,对外提供的都称为接口。 【】笔记本如果一开始酒封装死了,想用一些额外功能的时候就不行了。 笔记本鼠标直接焊在一起,紧密联系程度过高。想要降低他们的联系程度以及后续维护, 【】接口像里面的一种,抽象类是里面的一种 |
|
【】抽象类属于父类,定义体系的共同内容 【】接口定义体系的额外功能 学习是学生的共性内容,抽烟是学生的额外功能。学习功能放到抽象类,子类需要继承,抽烟放到接口,部分学生接入。 |
|
【】导盲犬抽象出根本是犬,导盲犬继承犬,导盲做成一个额外的功能接口接入导盲犬 |
| 七、不同领域中的分析设计方式 |
|
【】定义应用程序之前,先把规则定义好,我的应用程序就在使用这个规则 【】不管之后用什么设备,想让外部设备被笔记本使用,就必须符合笔记本的usb口,否则笔记本就用不了。 【】这些外部设备就是接口的具体实现 【】先买的笔记本,后买的鼠标 接口的特点在于两部分 一部分在于定义规则并使用规则 另一部分在于实现规则。 |
|
【】基本思想: 我们在描述的时候,会先去描述一些规则,这些规则是为了对我们建立的程序进行功能扩展,是为了对外去提供一些规则,这样可以降低日后的这些程序和我的程序耦合性。把这些规则定义完之后就在使用这些规则。没有给我传递符合该规则的对象,我的规则就放在这不动。日后想用的时候,只要照着规则去做,你的内容我就能用得上, |
|
【】直接给笔记本焊上相关设备线,谁知道后面还有什么设备,这样还得频繁对笔记本进行修改。
|
|
【】
【】买upan需要照着接口去买,所以upan类需要实现usb接口的规则, |
|
【】为什莫useUsb()里面变量是USB变量,但主函数传进的是UPAN变量??? 只要符合usb规则的设备,就能插入 【】因为USB b是接口类型的引用,接口类型的引用变量指向的都是接口的子类。 接口自己没有办法建立对象,接口的子类实现了接口,其子类可以建立对象。
|
|
upan是usb设备 前期写的程序,就因为对外提供了规则,就可以使用后期进来的设备
|
| 接口两个部分:使用接口的,实现接口的。开发,就是实现这个接口。 |
|
总结
|
|
总结: 1接口形式上就是一种抽象类 2皆已是一种对外暴露的规则,接口类型的变量指向的是实现接口规则的子类。 main--接口变量---->子类 implemnets 接口 |
|
|
|
接口就等于恶魔,谁被恶魔附了体实现了恶魔让其具体化,恶魔就指向被附体的哪个子类。 或者说,有个天线,谁把天线插头上,谁就等于那根天线。 |




























浙公网安备 33010602011771号