我有一个扩展超类的类。在构造我的子类(Candidate
)时,我在超类中有一些属性。我有一个名为Candidate
的{{1}}测试类。
简短的故事是,我创建了一个具有各种属性的候选数组,然后我将该数组传递给一个方法。然后,该方法将通过数组并选择某些候选项,然后为这些候选项创建一个新的CandidateTest
。
现在,当我尝试打印这些候选项的某些值时,我会在超类中定义的属性上获得ArrayList
返回,但是来自子类显示正常。
例如,我可以做
null
它会打印出我for(int i=0; i < googleCandidate.size(); i++){
System.out.println(googleCandidate.get(i).getCommunication());
}
所有通信值的值。但如果我这样做:
Candidate
每System.out.println(googleCandidate.get(i).getFirstName());
返回15行null
。
当我最初创建Candidate
个对象时,它们有5个值传递给构造函数。但是,它们似乎忘记了超类中定义的值,只记得子类中定义的值。
答案 0 :(得分:1)
当我创建子类的实例时,我忘记在超类中启动属性。我有这个代码:
public AddressBook(String fn, String ln){
}
当我改变它时,一切都有效:
public AddressBook(String fn, String ln){
firstName = fn;
lastName = ln;
}