1. 应用场景 如果需要定义一个基类并希望它的子类继承它的特征,则应该使用抽象类。 如果您希望多个类共享相同的特征和行为,则应该使用接口。 2. 区别 ● 接口一般只包含抽象方法,Java8之后允许可以定义默认方法 ● 接口不能定义普通方法,而抽象类可以定义普通方法以及方法的代码 ● 接口可以实现多个而抽象类只能单继承