Java提供一个叫做“抽象方法(abstract method)1”(对于C++程序设计员来说,这相当于C++语言中的纯虚函数)的机制。这种方法是不完整的;仅有声明而没有方法体。下面是抽象方法声明所采用的语法:
abstract void f();
包含抽象方法的类叫做“抽象类(abstract class)”。如果一个类包含一个或多个抽象方法,该类必须被限制为是抽象的。(否则,编译器就会报错)
如果一个抽象类不完整,那么当我们试图产生该类的对象时,编译器会怎样处理呢?由于为一个抽象类创建对象是不安全的,所以我们会从编译器那里得到一条出错信息。这里,编译器会确保抽象类的纯粹性,我们不必担心会误用它。
如果从一个抽象类继承,并想创建该新类的对象,那么我们就必须为基类中的所有抽象方法提供方法定义。如果不这样做(可以选择不做),那么导出类便也是抽象类,且编译器将会强制我们用abstract关键字来限制修饰这个类。
|