2013-08-19 7 views
5

Welcher ist die beste Methode zum Erstellen eines untergeordneten Objekts, das einem übergeordneten Element mit Daten zugeordnet ist? Wäre es in Ordnung, ein Verfahren zu haben, mit allen Eltern auf das Kind Klasse Werte wie:Die beste Methode zum Erstellen eines untergeordneten Objekts von seinem übergeordneten Element

public class Child extends Person { 
    public Child(Parent p) { 
    this.setParentField1(p.getParentField1()); 
    this.setParentField2(p.getParentField2()); 
    this.setParentField3(p.getParentField3()); 
    // other parent fields. 
    } 
} 

Mutter Daten ti Kind-Objekt kopieren?

Child child = new Child(p); 
+1

erweitert Person() {Keine Klammern erforderlich. – initramfs

+0

Warum muss für Ihr Kind ein Elternteil erstellt werden? –

+0

@tieTY vielleicht, nur vielleicht, will die Person einen genauen Kind-Klon, der alle seine Vorteile und schlechten Gewohnheiten einschließt = \ –

Antwort

9

Ich würde empfehlen, einen Konstruktor in der übergeordneten Klasse erstellen, die Parent ein Objekt des Typs akzeptiert.

public class Child extends Parent { 
    public Child(Parent p) { 
    super(p); 
    } 
} 

public class Parent { 
    public Parent(Parent p){ 
     //set fields here 
    } 
} 
+0

+1 Das ist schlau! –

+9

Erstellen eines 'Person' Objekts aus einem' Person' Objekt scheint etwas sinnlos .. – christopher

+0

Das ist der ganze Punkt der Frage, die ich vermute. –

0

Viel einfacher ist

 public class Child extends Parent { 
      public Child(Parent p) { 
      //Set fields with parent 
      } 
     } 

Ihr Kind Objekt hat immer Zugriff auf seine Eltern Felder angesichts der entsprechenden Zugriffsmodifikatoren vorhanden sind.