相同点:
- 抽象类和接口都不能实例化;
- 抽象类的子类和接口的实现类都必须要实现已经声明的抽象方法
不同点
- 抽象类需要extend继承,接口用implements实现
- 一个类只能继承一个类(单继承),但是一个类可以实现多个接口
- 抽象类强调所属关系,接口强调特定功能的实现
- 方法的实现形式,抽象类可以选择实现,接口必须都要实现
- 抽象类上方法的修饰符可以是private,非抽象方法必须要实现 ; 接口不能有私有的方法,默认public abstract类
- 抽象类的变量也可以有私有的,有默认类型,值可以在子类中定义,也可以重新赋值;接口不能有私有的,默认public static final型,必须给其初始值,实现类中不能重新定义,不能改变其值
- 抽象类设计理念是“is-a”的关系,接口是“like-a”的关系