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