接口

来源:互联网 发布:井柏然毁了肖奈 知乎 编辑:程序博客网 时间:2024/05/21 19:31

一、基本概念

接口:类的内部只存在全局常量和抽象方法

接口就是全局常量和抽象方法的集合,使用interface关键字定义接口


范例1:定义接口

 

定义的关键字是有区别的,但是他的常量和抽象方法与之前没有区别,对于接口里面有抽象方法,所以一定无法使用关键字new进行接口对象的实例化;

1. 接口的使用原则:

1)接口必须有子类,子类使用implements实现接口,一个子类可以同时实现多个 (打破了抽象类单继承的局限)

2)接口的子类(如果不是抽象类),则一定要覆写接口中的全部抽象方法;

3)接口对象可以利用子类的向上转型,进行实例化操作;

 

范例2

 

 

 

 

现在已经学习了普通类,抽象类,接口三个概念;若一个类既要继承抽象类,又要实现接口的话,则应该先继承(extends父类)后实现(implements接口,.....

 

范例3:先继承再实现

 

 

 

 

 

2. 说明

1)接口中的全部方法访问权限都是public,不管写与不写都如此;在工作中大多方法 规范都是由接口规定的,只要方法都建议用public定义;

2)在接口里面是有抽象方法和全局常量组成,所以在定义时以下两种方式相同:

 

3)一般在定义接口是定义方法是比较多的,全局常量比较上

4)一个抽象类可以使用implements实现多个接口;但接口不能继承抽象类,接口却可以使用extends继承多个父接口

5)任何内部类的结构实际上都不受定义的限制,所以在一个接口里也可以继续定义内 部接口或内部抽象类,而且使用static定义的内部接口就是一个外部接口

范例4:说明第4条一个抽象类可以实现多个接口

 

 

 

 

 

范例5:说明4,接口可以继承接口

 

 

 

 

范例6:说明第5static定义内部接口就是一个外部接口

 

 

 

3. 实际中接口有三大核心功能

1)使用接口定义规范标准

2)接口表示一种能力

3)将服务器的远程视图暴露给客户端

二、接口应用——定义规范标准

“接口”名词,例如:插座、交流语言、USB。通过程序模拟:打印机、U盘,都可以插在电脑的USB接口上使用,而是用规则有工作、退出。设计如下:

 

电脑是一类,打印机、等是一类,两个无关的类的连接,一定通过接口来完成,有借口定义出操作的标准。

范例7:代码实现,定义接口标准

 

 

 

 

测试代码

 

而在此工程中,发现电脑和打印机还是两个独立的类,没直接的定义联系,但又标准联系。

这样的形式在生活中随处可见。

如:本商场不允许宠物入内;人吃水果;

结论:

接口(和抽象类)就是对类的再次抽象,但是以接口为主(接口类具备继承局限,而接口没有)

范例8

编写一下的一段程序,本程序没有语法错误,但有结构应用错误。

 

 

 

 

本程序如果在实际中使用,有可能出现什么问题?

本程序在主方法(客户端)直接使用了关键字new实例化了接口的子类对象,那么就表示这个时候在客户端,fruit接口就与apple子类绑定在一起了,如果要更改子类,则需要修改客户端代码,而这种形式是不可能使用的。最好的设计是后面可以动,但是客户端操作不动。

即:A-->B”属于点对点的操作就会造成扩展上的麻烦,那么可以借鉴JVM的操作原理(程序找到JVM,由JVM操作系统,相当于A-->B-->C,这样加入第三方容易程序的维护

修改范例8代码:

 

 

0 0