2016-07-09 15 views
0

親オブジェクトと同じフィールドをすべて含むサブクラスのインスタンスを作成したいだけで、余分なフィールドが1つまたは2つあります。私の計画はこれです:親クラスオブジェクトを使用してサブクラスオブジェクトを作成しますか?

public subclass(parentClass parent, String extraField) 
{ 
    super(parent.getField1(), parent.getField2()); 
    this.extraField = extraField; 
} 

このデザインに何か問題がありますか?

+0

サブクラスのコンストラクタで親クラス+スーパーメソッドを拡張しますか? – DarkV1

答えて

0

これは単なるコピーコンストラクタプラスです。

しかし、理想的には、親クラスにコピーコンストラクタを定義し、代わりにそれを使用します。

public Subclass(ParentClass parent, String extraField) { 
    super(parent); // <=== Using the copy constructor 
    this.extraField = extraField; 
} 

(また、理想的には、読むために他の人のためのコードを投稿少なくともとき、Javaの標準の命名規則を使用します。 .. ;-))

+0

コピーコンストラクタをパブリックではなく保護する必要があると思います。それはいいですか? – user3724404

+0

@ user3724404:それはクラスに完全に依存します。インスタンス状態のものについては、公共のコピーコンストラクタ、または同じ目的を果たすものは全く正常です。 –

関連する問題