我有一个 Contractor
子类,它扩展了其父类 Staff
。
Test Class
Date macHireDate = new Date(2016, 1, 5);
Staff mac = new Staff("Mac", 66222222, macHireDate);
System.out.println(mac);
Staff bob = new Contractor("Bob", new Date(2012,10,10), new Date(2013,4,11))
System.out.println(bob);
我希望输出为 Bob (ID: None) ...
但我不知道如何使 ID 成为字符串。我不想更改测试类中的任何内容
public class Contractor extends Staff {
private Date contractEnds;
这是我的承包商类构造函数
public Contractor(String name, Date hireDate, long employementID, Date contractEnds) {
super(name, employementID, hireDate);
this.contractEnds = contractEnds;
}
并且它正在延伸
public Staff(String name, long employementID, Date hireDate) {
super();
this.name = name;
this.hireDate = hireDate;
this.employementID = employementID;
}
Bob 只有一个字符串、日期、日期。因此,我在不更改测试类中的任何内容的情况下如何使 bob ID“无”时遇到困难。
最佳答案
如果将Contractor
的构造函数更改为
public Contractor(String name, Date hireDate, Date contractEnds) {
super(name, 0, hireDate);
this.contractEnds = contractEnds;
}
然后还更改 Staff
的 toString
方法,以便如果 employmentID
为 0,则它将打印 None
关于java - 在子类中使用父类构造函数的困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41112556/