java基础:9.1 抽象类
在前几章,我们学了父类与继承等操作。有时候,一个父类设计得非常抽象,以至于它都没有任何具体的实例。这样的类称为 抽象类。 在父类里定义一些方法,但这些方法不能在父类中实现,因为他们的实现取决于几何对象的具体类型。这样的方法称为 抽象方法 ,在方法头中用 abstract 修饰符表示。 抽象方法是非静态的 抽象类和常规类很像,但是 不能使用new操作符创建它的实例 。抽象方法只有定义而没有实现,它的实现由子类提供。 一个包含抽象方法的类必须声明为抽象类。 抽象类的构造方法定义为protected ,因为它只被子类使用。创建一个具体子类的实例时,它的父类的构造方法被调用以初始化父类中定义的数据域。 不能使用new 操作符从一个抽象类创建一个实例,但是抽象类可以用作一种数据类型 GeometricObject[] object = new GeometricObject[10]; object[0] = new Circle(); 是合法的 // GeometricObject.java // 包含抽象类的父类 public abstract class GeometricObject { private String color = "white"; private boolean filled; private java.util.Date dateCreated;