抽象类
在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
抽象类的特点
抽象类和抽象方法必须用abstract关键字修饰
抽象类中不一定有抽象方法,但是有抽象方法的类必须定义为抽象类
抽象类不能实例化
- 因为它不是具体的。
- 抽象类有构造方法,但是不能实例化?构造方法的作用是什么呢?
- 用于子类访问父类数据的初始化
- 抽象的子类
- 如果不想重写抽象方法,该子类是一个抽象类
- 重写所有的抽象方法,这个时候子类是一个具体的类。
抽象类的实例化其实是靠具体的子类实现的。是多态的方式。
Animal a = new Cat(); |
示例
// 抽象类 Animal |
抽象类的成员特点
- 成员变量:既可以是变量,也可以是常量。
- 有构造方法:用于子类访问父类数据的初始化。
抽象类的成员方法特性
- 抽象方法 强制要求子类做的事情
- 非抽象方法 子类继承的事情,提高代码复用性。
示例
abstract class Animal { |