接口和抽象类是整个项目之中最大的组成灵魂,下面说说区别
NO |
区别 |
抽象类 |
接口 |
1 |
关键字 |
abstract class() |
Interface 接口名称() |
2 |
组成 |
普通方法、构造方法、抽象方法、常量、变量 |
全局常量、抽象方法 |
3 |
权限 |
各种权限 |
只能是public |
4 |
使用 |
子类使用extends只能继承一个父类 |
子类使用implements可以实现多个接口 |
5 |
关系 |
抽象类可以实现多个接口 |
接口不能继承抽象类,但可以继承多个接口,实现接口多继承 |
6 |
设计 |
模板设计模式 |
工厂设计模式,代理设计模式 |
7 |
局限 |
单继承局限 |
无局限 |
通过以上分析可以发现,在项目中是使用抽象类还是使用接口其实都一样,可是由于接口没有抽象类的单据城局限,那么在开发中如果发现接口和抽象类都能使用时,优先使用接口,避免单继承局限。