接口概念
Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
接口可以理解为一种特殊的类,里面全部是由全局常量和公共的抽象方法所组成。接口类似于C++里的基类,多个派生类继承它的变量和函数,不同的是接口只有方法声明,不能有具体的实现,而基类可以有部分方法的具体实现。
接口的语法实现
我们使用interface这个关键字来声明一个接口。
接口中的所有方法都只能声明方法标识,不能实现具体的方法体。具体的方法体的实现由继承该接口的类去实现。
接口中的属性默认为Public Static Final。一个类实现这个接口必须实现这个接口中定义的所有的抽象方法。
example
一个接口in1
,拥有全局变量和抽象方法:
一个继承该接口的类testClass
,使用implements关键词指明实现接口in1
:
只有把接口in1
规定的所有抽象方法都实现了,才认为testClass
类实现了接口in1
。由于testClass
已经把in1
里的抽象方法display()
实现了,所以可以认为testClass
类实现了接口in1
。
在main函数里测试一下我们刚才实现的这个接口:
可以看到,实际使用的是实现接口的类testClass
,而不是直接调用接口。
参考博客还给出以上代码的在线ide运行网址:https://ide.geeksforgeeks.org/9MpGUQC5uc
此外还有另一个例子:https://ide.geeksforgeeks.org/ONQ6pbZ4mP,其中定义了一个USB接口,以及一个U盘类和一个键盘类各自实现这个接口,再调用这两个类来测试实现的效果。