1、抽象类概述
- 一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类
2、抽象类的特点
- 抽象类和抽象方法必须使用abstract关键字修饰
- public abstract class Animal {}
- public abstract void eat();
- 抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
- 抽象类不能被实例化
- 可以参照多态进行实例化,通过子类对象进行实例化,这叫抽象类多态
- Animal a = new Cat();
- 抽象类的子类
- 要么重写抽象类中的所有抽象方法
- 要么是抽象类
3、抽象类的成员特点
- 成员变量
- 可以是变量
- 也可以是常量 final
- 构造方法
- 有构造方法,但是不能实例化
- 构造方法的作用是用于子类访问父类数据的初始化
- 成员方法
- 可以有抽象方法:限定子类必须完成某些动作
- 也可以有非抽象方法:通过继承提高代码的复用性