接口(Interface),在Java中是一个抽象的类型,有点类似抽象类(Abstract class),但又不完全相同。类被子类继承(extends),接口被类实现(implement),接口要求实现它的类必须实现它所制定的方法。
接口关键词interface
,其中能包含方法头部(修饰符,返回值,方法名以及参数,也就是除了方法体之外的其他部分,默认为public
)和常量(变量的声明默认加了static
和final
,所以只能是常量);方法不能包含方法体;
接口和抽象类一样无法被实例化,只能被实现(implement),与继承不同的是:Java中只支持单继承,但是支持多实现,也就是说一个类可以实现多个接口,从而模拟多继承。
接口用来定义一个标准,统一几个类共同的行为,用来建立类与类之间的联系,它只提供一种形式,而没有具体的实现总结下接口和类的不同,大概有以下几点:
- 接口无法被实例化
- 接口中不能包含构造方法
- 接口中的所有方法都是抽象的
- 接口中不能包含实例变量,接口的所有变量都默认为
static
和final
。 - 接口不能被继承,只能被实现
- 一个接口/类可以继承多个接口
表格可能看的更加直观一点: