抽象类 接口
| 抽象类 | 接口 | |
| 定义 | 可包含抽象方法的集合 | 只能包含抽象方法的集合 |
| 组成 | 属性、方法、构造器、代码块、内部类、抽象方法 | 全局常量、抽象方法 |
| 使用 | 被具体子类继承(extends) | 被具体子类实现(implements) |
| 关系 | 抽象类可以实现接口,不必实现所有抽象方法 | 接口只能继承接口,并且多继承 |
| 常见设计模式 | 模板模式 | 工厂模式,代理模式 |
| 对象 | 都是通过具体子类实现 | |
| 局限 | 单继承 | 一个具体类可以实现多个接口 |
| 实际 | 作为一个模板 | 一种规范 |
| 选择 | 优先选择接口 | |
| 特殊 | 一个抽象类可以包含多个接口,一个接口可以包含多个抽象类 | |
工厂模式:
把创建对象的任务交给子类去完成,创建对象也推迟,实现代码和具体对象的创建的分离
代理模式:

本文详细对比了抽象类与接口的定义、组成、使用方式、关系及设计模式应用,阐述了两者作为模板和规范的不同作用,以及在面向对象编程中的选择原则。
4180

被折叠的 条评论
为什么被折叠?



