接口的基本概念
概念:接口用抽象类来描述,就是比抽象类更加抽象的类,其体现在接口的所有成员方法都必须是抽象方法(不考虑Java8、9的新特性)。
定义抽象类的关键字是class,而定义接口的关键字是interface。
例如:
public interface Plant{//定义植物接口
public abstract void grow();
}
接口和类的关系
名称 | 关键字 | 关系 |
---|---|---|
类与类 | extends | 一个子类只能继承一个父类 |
类与接口 | implements | 一个类可以实现多个接口 |
接口与接口 | extends | 一个接口可以继承多个接口 |
接口与类的主要区别
(1)关键字不同
(2)接口支持多继承,类只能单继承
(3)类中可以有构造方法、成员变量,接口中只能有抽象方法(不考虑新特性)、常量。
(4)从Java8开始,接口中允许出现非抽象方法,但非抽象方法必须用default关键字修饰(主要用于在接口中增加方法后必须在实现它的类中实现新增方法的问题,因可能存在很多类并不需要新增的方法),表示它是接口中的默认方法,实现该接口的类可对该方法进行重写,也不重写。
(5)从Java9开始,接口中允许出现私有方法,一般在接口默认方法中使用,以实现代码的复用。