首先从4个方面来讲:
1.成员变量:抽象类的成员变量是普通变量
接口的成员变量是公共静态常量
2.构造方法:抽象类有构造方法,但是不能实例化
接口没有构造方法,也不能是实例化
3.成员方法:抽象类的方法可以有抽象方法,也可以没有抽象方法
接口的方法默认是public abstract 修饰
接口JDK8后有静态方法和default 方法,子实现类默认实现default方法
JDK9后添加私有方法,用于方法的抽取
4.继承关系:抽象类只能单继承类,不能多继承
接口可以多继承接口
小结:抽象类是重构的结果,接口是设计的结果