08/02/24 23:29:39
Class Parent {
private int val;
public getVal() { return val; }
public setVal(int val) { this.val = val; }
public Parent clone() {...}
}
みたいに、clone() を実装したクラスParentがあったとして、
これを継承した子クラス Child を作ります。
で、この Child でも clone() を実装したいのですが、
その Child#clone() はどうやって実装するのが普通ですか?
public Child clone() {
Child c = new Child();
c.setVal ( this.getVal() );
...
return c;
}
と、親クラスの Parent#clone() の存在を完全に無視してもいいもんですか?
これだとどうもスマートじゃないような気がして、protected なコンストラクタを
親クラスに追加する、なんて方法も考えたんですけど、
典型的な手法があるのならばご教示ください。