5 java inheritance copy-constructor
我有一个名为CDAccount的子类,它有自己的变量,这些变量没有在超类中定义.
private Calendar maturityDate;
private int termOfCD;
Run Code Online (Sandbox Code Playgroud)
子类还有一个复制构造函数,它接受一个超类对象.
public CDAccount(Account cd){
super(cd);
}
Run Code Online (Sandbox Code Playgroud)
这个构造函数由这行代码调用,它位于不同的类中.
if (accounts.get(index).getType().equals("CD")) {
return new CDAccount(accounts.get(index));
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种在复制构造函数中设置子类变量的方法.我以为我能够用它所接受的对象来做它,因为我在将对象设置为超类对象数组之前将其创建为子类对象.
铸造应该可以满足你的需要:
public CDAccount(Account cd) {
super(cd);
if(cd instanceof CDAccount) {
this.maturityDate = ((CDAccount)cd).maturityDate;
this.termOfCD=((CDAccount)cd).termOfCD;
}
else {
this.maturityDate = null;
this.termOfCD= null;
}
}
Run Code Online (Sandbox Code Playgroud)
这是因为 Java 中实现封装的方式:私有变量可以被同一类的其他实例访问。
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |