1相同点
抽象类和接口都是作为父类型,都不可以创建对象
2不同点
成员的区别
成员变量
抽象类:可以是常量,也可以是变量
接口:只能是常量 默认修饰符 public static final
成员方法
抽象类:可以是抽象的,也可以是非抽象的
接口:
JDK8之前: 只能是抽象方法
JDK8版本: 增加了默认方法 和 静态方法
JDK9版本: 增加了私有方法
构造方法
抽象类: 有,虽然不能创建对象,但其子类可以访问
接口: 没有
设计理念
抽象类: 可以存放事物的共性内容
接口:可以存放事物的规则以及拓展功能