-2

例如:我的customer班级有两个子班级,分别是guest班级或signed-up users班级。Customer classusername作为实例变量。是否guest class也有username作为实例变量?methods客户等级怎么样?

4

2 回答 2

0

Java 中的继承总是完整的,即所有属性和方法都将存在于子类中。那些在“超级”类中声明为私有的将在子类中不可见,尽管它们仍然存在。

如果您正在考虑某种部分继承,您可以做的最好的事情是重新考虑您的类模型:创建一个可以应用于所有特定情况的不同基类(这样如果您username在 Customer 类中有一个属性,您必须确保所有客户都拥有一个)。如果您不希望 Guest 对象具有该属性,只需将其从 Customer 中删除并在您的 SignedUpCustomer 类中声明即可。Java 接口在其他场合也可能有用。

于 2014-10-01T23:47:06.653 回答
-1

Guest 类和 SignedUpUsers 类将从 Customer 类继承所有未将其访问级别标记为“私有”或默认(未指定访问级别)的类成员(方法和变量)。

因此,在您的示例中,如果用户名变量具有公共或受保护的访问级别,那么它将被继承。您的所有方法也是如此。

String username; // will not be inherited
private String username; // will not be inherited
protected String username; // will be inherited
public String username; // will be inherited
于 2014-10-01T21:01:47.557 回答