超类可以不同于子类吗?

Could a superclass differ to subclasses?

假设我们有:

1) 包含字符串参数的超类:companyName 2) 包含字符串参数的子类:firstName, lastName

如果我们有 subClassA、subClassB、subClassC、subClassD 等。这些子类是否可以具有相同的超类,但具有不同的字符串 companyName,或者 companyName meaning/value 对于每个子类都是相同的,无论如何?

父 class 的每个实例都可以具有不同的 companyName 值,无论它是否属于子类型。

public class Parent {
  private final String companyName;

  public Parent(String name) {
    this.companyName = name;      // ignoring error-checking here
  }

  public String getCompanyName() {
    return companyName;
  }
}

public class Subsidiary extends Parent {
  private final String subsidiaryName;

  public Subsidiary(String parentName, String subsidiaryName) {
    super(parentName);
    this.subsidiaryName = subsidiaryName;
  }

  public String getSubsidiaryName() {
    return subsidiaryName;
  }
}

在一些客户端代码中你可以调用:

Subsidiary subsidiary = new Subsidiary("Holdings, Inc.", "Puppet");
System.out.println(subsidiary.getCompanyName() + " owns "
    + subsidiary.getSubsidiaryName());

你看,子类型对象继承访问器方法getCompanyName,使其能够访问对象父部分中的信息。