接口可以理解为一种特殊的类,里面全部是由全局常量和公共的抽象方法所组成。如果一个类中完全是由全局常量(static final声明)和抽象方法组成,就可以将其定义成一个接口。
接口的定义格式:
interface 接口名称{ 全局常量; 抽象方法; } |
在实际开发中,也经常省略全局常量前的staticfinal和抽象方法前的abstract。
与抽象类一样,接口要使用也必须通过子类,子类(如果不是抽象类)必须覆写全部的抽象方法。子类通过implements关键字实现接口,一个子类可以同时实现多个接口。
实现格式:
class 子类 implements 接口A,接口B,…{
} |
一个子类可以同时继承抽象类和实现接口,格式如下:
class 子类 extends 抽象类 implements 接口A,接口B,…{
} |
在使用中,一个抽象类可以实现多个接口,那么对于抽象类的子类,则就必须同时覆写接口和抽象类中定义的所有抽象方法。
一个接口不能继承一个抽象类,但是却可以通过extends关键字同时继承多个接口,实现接口的多继承。格式如下:
interface 子接口 extends 父接口A,父接口B,…{
} |