【发布时间】:2018-12-01 20:10:34
【问题描述】:
我有一个名为 CDAccount 的子类,它有自己的变量,这些变量没有在超类中定义。
private Calendar maturityDate;
private int termOfCD;
子类也有一个复制构造函数,它接收一个超类对象。
public CDAccount(Account cd){
super(cd);
}
这个构造函数被不同类中的这行代码调用。
if (accounts.get(index).getType().equals("CD")) {
return new CDAccount(accounts.get(index));
}
我正在寻找一种在复制构造函数中设置子类变量的方法。我想我可以用它接收的对象来做这件事,因为我在将它设置为超类对象数组之前将对象创建为子类对象。
【问题讨论】:
-
由于你接受Account类型,你需要检查你得到的对象是否是CDAccount并强制转换,然后在super(cd)之后赋值变量。或者你可以只接受 CDAccount 作为 CDAccount 类中的参数。
标签: java inheritance copy-constructor