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