如果将一个类声明为 abstract,那么这个类就是抽象类。抽象类可以包含抽象方法、字段和具体方法。抽象类不能被实例化,但抽象类的对象变量可以引用了一个非抽象子类的实例。
如果自下而上在类的继承层次结构中上移,位于上层的类更具有通用性,可能更加抽象。从某种角度看,祖先类更有一般性,人们只将它作为派生其他类的基类,而不是用来构造你想使用的特定的实例。例如,考虑扩展 Employee 类层次结构。员工是一个人,学生也是一个人。下面扩展我们的类层次结构来加入类 Person 和类 Student。下图显示了这三个类之间的继承关系。
Person.java
public abstract class Person {
public abstract String getDescription();
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
Employee.java
public class Employee extends Person {
private double salary;
private LocalDate hi