超类可以与子类不同吗?

时间:2017-04-27 23:05:41

标签: java inheritance subclass superclass

让我们说:

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

如果我们有subClassA,subClassB,subClassC,subClassD等。这些子类可以具有相同的超类,但是使用不同的字符串companyName,或者companyName含义/值对于每个子类都是相同的,无论是什么?

1 个答案:

答案 0 :(得分:-1)

父类的每个实例都可以为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,使其可以访问对象父节中的信息。