【发布时间】:2018-01-18 05:03:04
【问题描述】:
我有两节课。一个 Person 类和一个 Patient 类,其中 Person 是父类,Patient 是子类。我有变量firstName 和lastName,变量name 是Person 类中两者的组合,如下所示:
public Person (String initialFirstName, String initialLastName){
firstName = initialFirstName;
lastName = initialLastName;
name = firstName + " " + lastName;
}
但是当我希望 Patient 类继承这些变量时,它不会。
public Patient (String initialFirstName, String initialLastName){
super(initialFirstName);
super(initialLastName);
}
我不确定为什么它不起作用。我唯一能想到的是继承变量时不能有两个超级,但我不确定。
【问题讨论】:
-
应该是
super(initialFirstName, initialLastName);不是两个超 -
这不是非继承问题。您正在调用一个不存在的基类构造函数。
-
听起来像是可见性问题。如果您的变量被声明为私有,则 Patient 类无法访问这些变量。可以肯定的是,我们需要更多的课程。 “它不会继承这些变量”到底是什么意思?此外,您还有语法错误。超级构造函数只能调用一次,而不能像您的代码那样调用两次。
-
@ajheilman 请阅读此meta.stackexchange.com/a/5235
标签: java inheritance