我正在编写一个简单的程序,用 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/