接口和抽象类都不能实例化
/ | 接口 | 抽象类 |
---|---|---|
应用场景 | 接口是对行为的抽象(表示对象能做什么) | 其所有子类的公共属性的集合(更好的实现代码复用) |
关键字 | interface | abstract class |
实现/继承 | implements,extends | 只能继承extends |
子类继承 | 接口继承多个接口,类实现多个接口 | 只能用类继承一个 |
变量 | public static final(权限符不能更改、变量要赋初值) | 任意 |
方法 | 默认public abstract(做申明时不能更改)(1.8后可以加方法体,权限符可以是public static和default) | public abstract(声明时不能更改不能加方法体)(非抽象函数可以加方法体) |
构造函数 | 没有 | 有 |
实现 | 所有方法全部实现 | 抽象方法必须实现 |