如何产生的?
比如 Cat、Dog 类继承宠物 Pet,那么我们示例化(new Pet
),其实是没有意义的,那么我们可以将 Pet 变为一个抽象类。
如何防止父类被实例化?
被 abstract 修饰的类,称为抽象类。
- 抽象类不能被实例化
public abstract class 类名 {
}
如何保证子类必须重写父类的方法?
被 abstract 修饰的方法,称为抽象方法。
- 抽象类方法必须重写
// 省掉了方法名后面的 {}
public abstract 返回值类型 方法名();
抽象的特性
- 抽象类不能被实例化
- 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
- 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。
- 构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。