接口

一、接口定义:形式上是一种特殊类
image

1、接口定义

【】在形式上,接口是一种特殊的抽象类

【】编译完interface Xxx后得到Xxx.class文件。

image

 

2接口内部常见成员:全局常量、抽象方法。两者有其固定的修饰符。

image

【】接口中成员权限都是最大的,所以都有public修饰符

【】因为接口里面格式是固定的,程序员不写jvm也会加上去,所以理论上可以省略其固定格式,只写最简洁的。

但是为了阅读性,这些修饰符都要写上。(不写,函数容易重写时忘记加修饰符,属性容易忘记可以类名调用)

image

 
 
二、接口---实现implement

【】抽象类叫做继承,接口interface叫做实现。

抽象类里面除了抽象方法,还有些不抽象的函数。

接口里面全都是抽象函数,都需要去实现去覆盖

【】类与类继承关系extends,类与接口就是实现implements(实现,执行,完成)

 【】Demo是接口,DemoImpl是实现接口的子类,都具备用类名调动静态成员的功能。

【】d是对象,对象对静态非静态成员都可以调动

 

f024032e76a9477145ef214344a3373c

 

e1f43359d29ddd85aa8b8bd4d1942c09

 

 
 三、接口-多实现
 【】接口出现的好处,实现了多继承机制的改良--多实现

图片

 【】实现接口,就要把每个接口里面的抽象方法都重写

图片

 【】多继承之所以禁止,是因为调用方法不明确,方法体{}各异

但是多接口可以,因为接口内部的抽象方法只有声明没有方法体,不存在调用不明确的问题,所以可以做到多接口。

在子类里面,重写的方法会覆盖多接口的所有同名抽象函数。

 
四、
image
image

image

【】一旦想要对一个类进行扩展,可以随时通过接口来办;

【】类和类之间是继承关系,类和接口之间是实现关系。

【】接口和接口之间是继承关系,而且可以多继承

image

多继承问题在于方法体,而接口内的方法没有方法体,所以接口可以多继承。

image
 
 
五、接口的特点
image

【】类似于笔记本电脑上的接口,可以连接鼠标

【】凡是对外暴露的规则都可以称为接口。规则就是方形口,是圆形口就进不来。

对外提供的规则就是接口的特性。接口时对外提供的规则。

【】有了这个接口,笔记本和鼠标联系降低,由直接焊死在笔记本内部到可以拔插。

降低紧密联系程度,就是降低耦合性。降低不是没有。

【】usb口不仅插鼠标,还可以查键盘。u盘。提高笔记本功能扩展性。

有接口,可以零部件升级更新,而不用整体废弃

 
六、接口和抽象类差异
image

【】这个接口不仅仅指的是是java中的interface,只得更是广泛的东西。

广义性理解,对外提供的都称为接口。

【】笔记本如果一开始酒封装死了,想用一些额外功能的时候就不行了。

笔记本鼠标直接焊在一起,紧密联系程度过高。想要降低他们的联系程度以及后续维护,

【】接口像里面的一种,抽象类是里面的一种

 

image

【】抽象类属于父类,定义体系的共同内容

【】接口定义体系的额外功能

学习是学生的共性内容,抽烟是学生的额外功能。学习功能放到抽象类,子类需要继承,抽烟放到接口,部分学生接入。

image

【】导盲犬抽象出根本是犬,导盲犬继承犬,导盲做成一个额外的功能接口接入导盲犬

 
 
七、不同领域中的分析设计方式

image

【】定义应用程序之前,先把规则定义好,我的应用程序就在使用这个规则

【】不管之后用什么设备,想让外部设备被笔记本使用,就必须符合笔记本的usb口,否则笔记本就用不了。

【】这些外部设备就是接口的具体实现

【】先买的笔记本,后买的鼠标

接口的特点在于两部分

一部分在于定义规则并使用规则

另一部分在于实现规则。

【】基本思想:

我们在描述的时候,会先去描述一些规则,这些规则是为了对我们建立的程序进行功能扩展,是为了对外去提供一些规则,这样可以降低日后的这些程序和我的程序耦合性。把这些规则定义完之后就在使用这些规则。没有给我传递符合该规则的对象,我的规则就放在这不动。日后想用的时候,只要照着规则去做,你的内容我就能用得上,

【】直接给笔记本焊上相关设备线,谁知道后面还有什么设备,这样还得频繁对笔记本进行修改。

image

【】

 

【】买upan需要照着接口去买,所以upan类需要实现usb接口的规则,

image

image

image

image

【】为什莫useUsb()里面变量是USB变量,但主函数传进的是UPAN变量???

只要符合usb规则的设备,就能插入

【】因为USB b是接口类型的引用,接口类型的引用变量指向的都是接口的子类。

接口自己没有办法建立对象,接口的子类实现了接口,其子类可以建立对象。

image

upan是usb设备

前期写的程序,就因为对外提供了规则,就可以使用后期进来的设备

image

接口两个部分:使用接口的,实现接口的。开发,就是实现这个接口。
 

总结

image

image

 

 

 总结:

1接口形式上就是一种抽象类

2皆已是一种对外暴露的规则,接口类型的变量指向的是实现接口规则的子类。

main--接口变量---->子类 implemnets 接口

 

 

接口就等于恶魔,谁被恶魔附了体实现了恶魔让其具体化,恶魔就指向被附体的哪个子类。

或者说,有个天线,谁把天线插头上,谁就等于那根天线。

posted @ 2025-09-08 19:01  ibddindonon  阅读(118)  评论(0)    收藏  举报