Java 超类和子类会有所不同吗?

Java 超类和子类会有所不同吗?,java,inheritance,subclass,superclass,Java,Inheritance,Subclass,Superclass,假设我们有: 1) 包含字符串参数的超类:companyName 2) 包含字符串参数的子类:firstName、lastName 如果我们有子类A,子类B,子类C,子类SSD等等,这些子类可以有相同的超类,但有不同的字符串companyName,或者,不管是什么,每个子类的companyName含义/值都是相同的?父类的每个实例对于companyName都可以有不同的值,无论它是否属于子类型 public class Parent { private final String compan

假设我们有:

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


如果我们有子类A,子类B,子类C,子类SSD等等,这些子类可以有相同的超类,但有不同的字符串companyName,或者,不管是什么,每个子类的companyName含义/值都是相同的?

父类的每个实例对于
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
,该方法允许它访问对象父部分中的信息。

您了解类和实例之间的区别吗?这可能是我错误的解释。我的意思是,子类都是一个特定类的实例,它扩展了一个超类。这就是子类的定义。那么,所有这些子类都共享同一个超类实例吗?也许你说的是“隐藏字段”,如“是”,是否可以实例化一个超类,因此它对于子类的特定实例是唯一的(不同的字符串含义)?子类实例没有超类实例,它们是超类实例​, 最后,我提出了一个措辞正确的问题,不是“n个子类实例能否具有相同的超类实例?”所以我不知道你是如何得出这个公式的。@LewBloch谢谢,这回答并解决了我的问题!