JAVA抽象类、接口、多态
1. 多态
定义
多态是同一个行为具有多个不同表现形式或形态的能力。(多态就是同一个接口,使用不同的实例而执行不同操作)
如何实现多态
- 继承和接口
- 父类和接口类型的变量赋值子类对象
- 调用被override的方法
2. 抽象类
定义
一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。(不能实例化)
特点
- 不能实例
- 构造方法,类方法(用static修饰的方法)不能声明为抽象方法。
- 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
- 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。
3. 接口
抽象方法的集合,接口通常以interface来声明。
接口与类区别
- 接口不能用于实例化对象。
- 接口没有构造方法。
- 接口中所有的方法必须是抽象方法。
- 接口不能包含成员变量,除了 static 和 final 变量。
- 接口不是被类继承了,而是要被类实现。
- 接口支持多继承
4. 抽象类和接口的区别
- 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。
- 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。
- 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。