2016-07-09 3 views
0

Я хочу создать экземпляр подкласса, который содержит все те же поля, что и родительский объект, просто с дополнительным полем или двумя. Мой план:Использование объекта родительского класса для создания объекта подкласса?

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: Это полностью зависит от класса. Для всего, что имеет состояние экземпляра, общедоступный конструктор-копия или что-то, что служит одной цели, вполне нормально. –