抽象类与接口的关系
序号 | 区别 | 抽象类 | 接口 |
---|---|---|---|
1 | 定义 | 包含一个抽象方法的类 | 抽象方法和全局常量的集合 |
2 | 组成 | 构造方法,抽象方法,普通方法,常量,变量 | 常量,抽象方法 |
3 | 使用 | 子类继承抽象类(extends) | 子类实现接口(implements) |
4 | 关系 | 抽象类可以实现多个接口 | 接口不能继承抽象类,但允许继承多个接口 |
5 | 常见的设计模式 | 模板设计 | 工厂设计、代理设计 |
6 | 对象 | 通过对象的多态性产生实例化对象 | 通过对象的多态性产生实例化对象 |
7 | 局限 | 单继承局限 | 没有单继承局限 |
8 | 实际 | 作为一个模板 | 是作为一个标准或表示一种能力 |
9 | 选择 | 都可以选择的情况下,优先接口,避免单继承 | |
10 | 特殊 | 一个抽象类中可以包含多个接口,一个接口中可以包含多个抽象类 |