CS3L27——抽象类和接口的区别
CS3L27——抽象类和接口的区别
抽象类和接口相同点
- 都可以被继承,都不能直接实例化
- 都可以包含方法申明,子类必须实现未实现的方法
- 都遵循里氏替换原则
抽象类和接口的不同点
- 抽象类中可以有构造函数;接口不能
- 抽象类只能被单一继承;接口可以继承多个
- 抽象类可以有成员变量;接口不能
- 抽象类中可以申明成员方法,虚方法,抽象方法,静态方法;接口只能申明没有实现的抽象方法
- 抽象类可以使用访问修饰符;接口中建议不写,默认
public
如何选择抽象类和接口
- 表示对象的用抽象类,表示行为拓展的用接口
- 不同对象拥有的共同行为,我们往往可以使用接口来实现
例如:动物是一类对象,可以使用抽象类;而飞翔是一个行为,就可以选择接口
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!