No. | 比较点 | 抽象类 | 接口 |
---|---|---|---|
1 | 定义 | 用abstract修饰的类 | 静态常量和抽象方法的集合 |
2 | 组成 | 抽象方法、普通方法、构造方法、成员变量、常量 | 抽象方法、静态常量 |
3 | 使用 | 子类继承(extends) | 实现类实现(implements) |
4 | 关系 | 抽象类可以实现接口 | 接口不能继承抽象类 |
5 | 对象 | 通过对象的多态性来实现的 | 通过对象的多态性来实现的 |
6 | 局限 | 不能多继承、不能实例化 | 可以多继承、不能实例化 |
7 | 选择 | 建议选择接口,避免单继承 | 建议选择接口,避免单继承 |
8 | 实际 | 一部分模板,一部分标准 | 标准 |
(1)父类是普通类的是模板,父类是抽象类是部分模板、部分规范,父类是接口的时候,就是完全规范
Q:什么时候使用接口、什么时候使用继承?
A:当抽取多个共性代码或者设计复杂类的时候使用继承,其他一律接口