interface
interface 接口名{
全局常量
抽象方法
}
interface的特点
- 接口的中的成员变量默认都是全局常量,自动添加public static final修饰符,定义时必须赋初值
- 接口中的方法默认都是公共的抽象方法,自动添加public abstract修饰符
- 接口可以看做是一种特殊的类,编译后也生成.class字节码
- 接口无法直接实例化,只能使用实现了该接口的具体类创建对象
- 一个接口可以继承多个接口
interface的作用
- 弥补了java单一继承的缺点,接口可以不打破原先继承结构的基础上,为类额外增加新的功能.(接口名一般用able结尾,表示一种操作能力)
- 接口不变,实现类可以随意切换,提高了扩展性和可维护性, 易用性和安全性
- 一个接口可以被多个类实现,提高了代码的重用性
接口和抽象类的区别和联系
相同点: 本身都不能直接使用,需要通过子类实例化才能使用
接口是一种特殊的抽象类
不同点:
- 内容不同
抽象类–啥都有
接口—抽象方法,全局变量 - 语法关键字不同
抽象类—abstract extends
接口—interface implements - 使用方法不同
抽象类—单一继承的局限,一个类只能继承一个抽象类,但一个抽象类可以实现多个接口
接口—不存在单一继承的局限,一个接口可以继承多个接口,一个类也可以实现多个接口