抽象类
用关键字abstract来修饰
1.有抽象方法的类只能定义成抽象类
2.抽象类不能实例化,既不能用用来实例化抽象类。
3.抽象类可以包含属性、方法、构造方法。但是构造方法不能用来new实例,只能用来被子类调用。
4.抽象类只能用来被继承。
5.抽象方法必须被子类实现。
6.成员的特点
- 成员变量
- 既可以是变量
- 也可以是常量
- 构造方法
- 空参构造
- 有参构造
- 成员方法
- 抽象方法
- 普通方法
接口
接口就是比抽象类还抽象的抽象类,可以更加规范的对子类进行约束。全面的专业的实现了:规范和具体实现的分离。
抽象还提供了某些具体实现,接口不提供任何实现,接口中所有方法都是抽象方法,接口就是完全面向规范的,规定了一批类具有的公共方法规范。
区别
1.普通类:具体实现
2.抽象类:具体实现,规范(抽象方法)
3.接口:规范
4.成员特点
- 成员变量
只能是常量
默认修饰符:public static final - 构造方法
没有,因为接口主要是扩展功能的,而没有具体存在 - 成员方法
只能是抽象方法
默认修饰符:public abstract
关于接口中的方法,JDK8和JDK9中有一些新特性