3.4、抽象类和接口的比较(重点)
抽象类和接口在使用上都是很相似的,那么在开发之中,使用何种技术呢,下面通过一个表格进行归纳:
No. |
区别点 |
抽象类 |
接口 |
1 |
关键字 |
使用abstract关键字 |
使用interface关键字 |
2 |
组成 |
抽象方法、普通方法、构造方法、常量、变量、全局常量 |
全局常量、抽象方法 |
3 |
权限 |
可以是各个权限 |
只能是public权限 |
4 |
使用 |
子类使用extends继承抽象类 |
子类使用implemetns实现接口 |
5 |
设计模式 |
模板设计模式 |
工厂设计、代理设计 |
两者结合可以完成适配器设计模式 | |||
6 |
实例化对象 |
都是依靠对象的多态性,采用向上转型的关系,通过子类进行对象的实例化 | |
7 |
关系 |
抽象类可以包含内部抽象类和内部接口,一个抽象类可以同时实现多个接口 |
接口也可以包含内部抽象类和内部接口,一个接口不能继承抽象类,但是可以同时继承多个接口 |
8 |
限制 |
一个子类只能继承一个抽象类,有单继承局限 |
一个子类可以同时实现多个接口,无单继承局限 |