Java 超类和子类会有所不同吗?
假设我们有: 1) 包含字符串参数的超类:companyName 2) 包含字符串参数的子类:firstName、lastNameJava 超类和子类会有所不同吗?,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
如果我们有子类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谢谢,这回答并解决了我的问题!