我有两个类:Year 和 LeapYear 在它们的构造函数中分别将一年中的日子设置为 365 和 366。我想在这里实现一些特定的东西。我想在 LeapYear 的构造函数中覆盖 Year 的构造函数以将天数设置为 366?或者我做了以下事情。
public class Year {
private int days;
public Year() {
this.days = 365;
}
public void setDays(int days) {
this.days = days;
}
public int getDays() {
return this.days;
}
public class LeapYear extends Year {
public LeapYear() {
setDays(366);
}
最佳答案
该模型是错误的,这就是为什么您会遇到构造函数的问题:366 天的闰年是 365 天的年份根本不是真的。但这就是您的模型试图告诉我们的。
你最好这样建模:
public abstract class PeriodOfDays {
int days;
public PeriodOfDays(int days) { this.days = days; }
}
public class StandardYear extends PeriodOfDays {
public StandardYear() { super(365); }
}
public class LeapYear extends PeriodOfDays {
public LeapYear() { super(366); }
}
关于java - 覆盖父类(super class)构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11486723/