例如:我的customer
班级有两个子班级,分别是guest
班级或signed-up users
班级。Customer class
有username
作为实例变量。是否guest class
也有username
作为实例变量?methods
客户等级怎么样?
问问题
375 次
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 回答