2013-08-19 30 views
5

Veri içeren bir ebeveyn oluşturmanın en iyi yolu hangisidir?Üst nesneden bir alt öğe oluşturmanın en iyi yolu

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

kopyalamak için ana veri ti alt nesne: tüm ebeveynler olarak çocuk sınıfı değerleri ile bir yöntemi var Tamam olur mu?

Child child = new Child(p); 
+1

genişler Kişi() {Köşeli parantez yok. – initramfs

+0

Çocuklarınızın, neden oluşturulacak bir "Ebeveyn" geçirmesi gerekiyor? –

+0

@tieTYT belki, belki de, kişi tüm faydaları ve kötü alışkanlıkları da dahil olmak üzere tam bir çocuk klonu istiyor = \ –

cevap

9

ben tip Parent bir nesnesi kabul üst sınıfında bir kurucu oluşturarak öneriyoruz.

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

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

+1 Bu akıllıca! –

+9

'Person' nesnesinden' Person' nesnesini yaratmak anlamsız görünüyor .. – christopher

+0

Bu, sanırım sorunun tam noktası. –

0

Çok basit Çocuğunuz nesne daima uygun erişim değiştiricileri verilmiş olan ebeveynin alanlarına erişimi olan

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

yerde olmasıdır.

İlgili konular