Java
大约 1 分钟
Java
目录
抽象基类
抽象类简概
- 作用:位于上层的类更具有通用性,甚至可能更加抽象
- 举例:Employee和Student的共同超类为Person
- 性质:抽象类不能被实例化
抽象类使用(abstract关键字)
抽象方法
使用abstract关键字,这样就完全不需要实现超类的方法
public abstract String getDescription(); // no implementation required,不需要实现
抽象类
为了提高程序的清晰度,包含一个或多个抽象方法的类本身必须被声明为抽象的。 但类即使不含抽象方法,也可以将类声明为抽象类
public abstract class Person { ... public abstract String getDescription(); }
补充
除了抽象方法之外,抽象类还可以包含具体数据和具体方法
但许多程序员认为,在抽象类中不能包含具体方法。建议尽量将通用的域和方法(不管是否是抽象的)放在超类(不管是否是抽象类)中
在Java程序设计语言中,抽象方法是一个重要的概念。在接口(interface)一章中将会看到更多的抽象方法
与C++不同
Java
public abstract class Person // 抽象基类(关键字强制被声明,目的只是提高程序的清晰度) { ... public abstract String getDescription();// 抽象方法 }
C++
只要有一个纯虚函数,这个类就是抽象类。在C++中,没有提供用于表示抽象类的特殊关键字。
class Person { public: virtual string getDescription() = 0; // 纯虚函数 }