需求:需要飞到北京出差
飞机、鸟和超人不能归于一个类属,但是具备有相同的特性:会飞的。所以引入了一个新概念叫做接 口,可以用于规范实现接口的类中必须实现接口中抽象方法。接口可以理解为一种契约
使用关键字
interface
定义接口
接口不能直接使用,必须有对应的实现类
通过接口定义变量,使用具体类的实例,进行调用
引入接口的目的在于隔离实现
使用接口而不是使用具体的类,则可以实现在实现接口的多个具体实现类之间进行更换
,
例如定义出超人类
什么是接口
在
Java
中不直接支持多继承,因为会出现调用的不确定性,所以
Java
将多继承机制进行改良,在
Java
中 变成了多实现。一个类可以实现多个接口,一个接口可以继承多个接口
接口是一种特殊的抽象类,接口只能被
abstract
或者
public
修饰
没有构造器方法
没有属性,只能定义常量
可以包含抽象方法,也可以没有抽象方法
接口中的方法只能被
public
、
default
、
abstract
、
static
修饰
一般情况下接口中只定义抽象方法
定义的方法默认为公开的抽象方法
抽象方法必须在实现类中提供实现
可以使用
default
关键字给抽象方法提供默认实现,有默认实现的方法在实现类中可以重新定义,也
可以不重新定义
报错原因:Java中不支持类的多重继承,一个类只能有一个双亲类