序号 | 区别点 | 抽象类 | 接口 |
---|---|---|---|
1 | 定义 | 包含一个抽象方法的类 | 抽象方法和全局常量的集合 |
2 | 组成 | 构造方法、抽象方法、普通方法、常量、变量 | 常量、抽象方法 |
3 | 使用 | 子类继承抽象类(extends) | 子类实现接口(implems) |
4 | 关系 | 抽象类可以实现多个接口 | 接口不能继承抽象类,单允许继承多个接口 |
5 | 常见设计模式 | 模版设计 | |
6 | 对象 | 通过对象的多态性产生实例化对象 | 通过对象的多态性产生实例化对象 |
7 | 局限 | 抽象类有单继承的局限 | 接口没有此局限 |
8 | 实际 | 作为一个模板 | 作为一个标准或者表示一种能力 |
9 | 选择 |
| |
10 | 特殊 | 一个抽象类中可以实现多个接口,一个接口中可以包含多个抽象类 | 一个抽象类中可以实现多个接口,一个接口中可以包含多个抽象类 |
一个类不要去集成一个已经实现好的类,只能继承抽象类或实现接口,如果接口和抽象类都可以使用,那么优先使用接口,避免单继承局限。