java - 覆盖父类(super class)构造函数

标签 java

我有两个类:YearLeapYear 在它们的构造函数中分别将一年中的日子设置为 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/

相关文章:

java - 如何在 PlayFramework 中禁用数据库

java - 带 Spring Boot 的充气城堡

java - Atom Processing 处理带有空格的文件夹时出现问题

java - 如何在 Java GRPC 中配置 .proto 路径?

java - 像 C++ 风格的函数指针一样使用 Java Lambdas?

java - OpenGL 在 Android 2.3.7(CyanogenMod-7) 上绑定(bind)空白纹理,而在其他 Android 版本上绑定(bind)实际图像

java - 有没有一种简单的方法可以将几行文本连接成一个字符串而无需不断添加换行符?

java - 日期格式不会解析字符串

java - 编排引擎和框架?

java - Spring 宠物诊所 : "${owner.new}" contains invalid expression(s), Tomcat (6.0.32)