我有两节课。 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);
}
我不确定为什么它不会工作。我唯一能想到的是,在继承变量时你不能有两个超级,但我不确定。
答案 0 :(得分:1)
试试这个
public Patient (String initialFirstName, String initialLastName){
super(initialFirstName,initialLastName);
}
而不是
public Patient (String initialFirstName, String initialLastName){
super(initialFirstName);
super(initialLastName);
}
答案 1 :(得分:1)
调用superclass构造函数 必须是第一行 子类构造函数。
无论如何,下面的代码行应该给你编译错误
public Patient (String initialFirstName, String initialLastName){
super(initialFirstName);
super(initialLastName);
}
应该是
public Patient (String initialFirstName, String initialLastName){
super(initialFirstName, initialLastName);
}
另外,请注意,
使用super(参数列表),带有 匹配参数列表的超类构造函数称为 。
因此,引用代码super(initialFirstName);
会给出编译错误,因为超类中没有匹配的参数列表构造函数。
答案 2 :(得分:0)
您可以使用此
public Patient (String initialFirstName, String initialLastName){
super(initialFirstName,initialLastName);
}
或者,如果这两个字段是受保护的或公共的,并且您不希望由构造函数设置,那么您可以尝试这个
public Patient (String initialFirstName, String initialLastName){
super.firstName = initialFirstName;
super.lastName = initialLastName;
}