接口
为什么有接口
在继承关系中部分子类拥有相同的方法时,可建立接口
接口就是一种规则,更像是一个公用的方法
与抽象类不同
如何定义接口
接口用关键字interface来定义
接口不能实例化
接口和类是实现关系,通过implements关键字表示
接口的子类:重写接口中的所有抽象方法或就是抽象类
![](https://img-blog.csdnimg.cn/img_convert/3e801160a6fb317eef3971a5e4d38e01.png)
如何使用接口
接口和类的实现关系,可以多实现,可以单实现
![](https://img-blog.csdnimg.cn/img_convert/79782f3baa26f9bc41ad8d349de7eba0.png)
实现类还可以在集成一个类的同时实现多个接口
![](https://img-blog.csdnimg.cn/img_convert/89b1f2dc732e1320d132b4e6c5aee0ef.png)
接口里面成员特点
成员变量
常量
默认修饰符:public static final
成员方法
抽象方法
默认修饰符:public abstract
![](https://img-blog.csdnimg.cn/img_convert/27c0689d935e14cc31b821807a4c0a93.png)
接口和类之间的关系
类和类
继承关系
单继承
可以多层继承
类和接口
实现关系
单实现和多实现
可以同时多个接口
接口和接口
继承关系
单继承和多继承
如果实现类实现了最底层子接口,那么需重写所有抽象方法
![](https://img-blog.csdnimg.cn/img_convert/29a459981e12a5c14fbb16853506d7f1.png)
![](https://img-blog.csdnimg.cn/img_convert/4764e73a36517c0f3ad07258ed9e21fe.png)
![](https://img-blog.csdnimg.cn/img_convert/722fa1fa88da948be51d8c3be1c13d81.png)
![](https://img-blog.csdnimg.cn/img_convert/119b806a7d3f48209bb7ee23da33c216.png)
![](https://img-blog.csdnimg.cn/img_convert/b0baf19d582bda7421637d67e104bf53.png)