提示:本文仅为笔者学习记录
抽象类和接口的区别以及使用场景
区别
1. 相同点
- 两者都是抽象类,都不能实例化。
- 接口和抽象类的子类都必须要实现已经声明的抽象方法。
2. 不同点
- 一个类可以实现多个接口,但只能继承一个抽象类。
- 抽象类中并非所有的方法都是抽象的,只有那些冠有abstract关键字的抽象方法,子类必须实现。那些非抽象方法,在抽象类中则必须定义方法体。
- 接口中的每一个方法都是抽象方法,且只能声明pulic的方法。
应用场景
1. 接口
- 类与类之前需要特定的接口进行协调,而不在乎其如何实现。
- 作为能够实现特定功能的标识存在,也可以是什么接口方法都没有的纯粹标识。
- 需要将一组类视为单一的类,而调用者只通过接口来与这组类发生联系。
2. 抽象类
在既需要统一的接口,又需要实例变量或缺省的方法的情况下,就可以使用它