これは機能します:
class ABean implements A {
protected String field1;
...
protected String fieldn;
public String getField1() {
return field1;
}
...
}
class BBean extends ABean {
public BBean(A a) {
super();
this.field1=a.getField1();
...
this.fieldn=a.getFieldn();
}
}
しかし、このコンストラクターを記述するB(A a)
のは面倒で、実際には実用的ではなく、エラーが発生しやすいA
ですA
。
ABeanのクローンを実装できると思いますが、それには同様の問題があり(フィールドを追加/削除するときにクローンの実装を更新する必要があるため)、BBean(A a)
コンストラクターを持つこともできません。インターフェイスの一部も作成しない限り、BBean(ABean a)
コンストラクタのみです。clone()
それで...実装するためのよりクリーンでより良い方法はありますBBean(A a)
か?