接口interface

Posted zsyzsyzsyzsyzsy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口interface相关的知识,希望对你有一定的参考价值。

接口interface

类:有属性,有方法;有类常量;

抽象类:有属性,有方法;有类常量; 还可以有抽象方法(只有方法头)

“更”抽象类(就是接口) :有接口常量;还可以有抽象方法(只有方法头)

 

可见,接口中,只有两类最简单特性信息:

接口常量:  其实就是常量。

抽象方法:    只有方法头——下级自然就应该去“实现”它。

 

接口有什么用?

接口可以看作是抽象类的更高层面的“抽象规范”,不考虑接口常量的话,那么就相当于之规定了“下级类”要做什么——至于怎么就,没有规定。

 

接口也可以说,在一个抽象类中只有类常量和抽象方法的一种特例情形。

但是!!!

接口可以实现“多继承”(多实现),而类不行。

 

鸟:有翅膀,能飞;

鸵鸟是鸟吗?

一个类“继承”接口中的特性信息,被称为实现“implements),其实本质跟继承一样,即下级类就可以使用上级类的数据(方法)了。

但因为接口中的方法都是抽象的,则下级类就必须:

1,要么实现该抽象方法(写出其方法体)

2,要么也声明为抽象方法——等待更下一级的类去实现。

 

 

一个类只能继承一个父类,但可以实现多个“上级接口”,语法形式:

class  类A  extends  类B  implements  接口1,接口2,.... { 。。。类定义语句。。。}

 

一个接口同样可以继承另一个接口(也是单继承):

interface  接口1  extends 接口2  {接口定义}

以上是关于接口interface的主要内容,如果未能解决你的问题,请参考以下文章

接口隔离原则 Interface Segregation Principle

如何在Java中使用通用接口获取实现类中的方法

Java 8 接口方法中不允许“同步”的原因是啥?

Spring控制反转的最简单说明

Java:如何将两个类的属性合二为一?

解释性语言在运行程序的时候才翻译