超类可以不同于子类吗?
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
,使其能够访问对象父部分中的信息。
假设我们有:
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
,使其能够访问对象父部分中的信息。