Java 子类在构造函数中少用 1 个参数

标签 java

我正在编写一个简单的程序,用 Java fx 显示一个人的卡号、姓名和限额。我怎样才能让子类在其构造函数中继承一个少的参数?我有两种不同的卡类型,一种是没有限制的借记卡,另一种是我在创建对象时会给予限制的信用卡。

public AccountData(String id, String name, int limit) {
    this.id = id;
    this.name = name;
    this.limit = limit;
}

因此,在创建扩展 AccountData 的借记卡子类时,我不需要 limit 参数,因为它没有 limit 参数。

提前谢谢您。

最佳答案

最干净的方法是将 limit 保留在 AccountData 类之外(因为它显然不是公共(public)属性)并且仅在您的信用卡类别中引入它:

public class AccountData {
    private String id;
    private String name;

    public AccountData(String id, String name) {
        this.id = id;
        this.name = name;
    }
}

public class CreditCardAccountData extends AccountData {
    private int limit;

    public CreditCardAccountData(String id, String name, int limit) {
        super(id, name);
        this.limit = limit;
    }
}

如果您想坚持当前的方法,您可以向您的 AccountData 类添加第二个构造函数,例如将 limit 设置为默认值(可能是 Integer.MAX_VALUE-1,尽管前者似乎更合适):<​​/p>

public AccountData(String id, String name) {
    this(id, name, Integer.MAX_VALUE);
}

关于Java 子类在构造函数中少用 1 个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49480073/

相关文章:

java - 在国际象棋编程中很好地使用递归?

java - 如何更改 JTable 标题的字体?

java - 俄罗斯方 block 旋转算法不起作用

java - JMH 超时不中断

java - 预期为简单错误 '('

java - 如何在 Spring 数据 r2dbc 中替换 @PrePersist

java - 具有项目依赖性的 Eclipse RCP

java - 为什么数组的最小值总是0?

java - 如何抓取随机视频在特定条件下播放

java - java上传文件到ftp服务器出错