2013-08-19 98 views
5

哪種方法可以創建給父母數據的子項? 難道是確定有一個方法與所有父母對孩子班級爲值:從其父項創建子對象的最佳方法

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

複製父數據TI子對象?

Child child = new Child(p); 
+1

extends Person(){不需要括號。 – initramfs

+0

爲什麼您的「孩子」需要傳遞一個「父」來創建? –

+0

@tieTYT也許,也許,這個人想要一個確切的孩子克隆,包括他所有的好處和壞習慣= \ –

回答

9

我會建議創造接受Parent類型的對象的父類的構造函數。

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

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

+1這很聰明! –

+9

從「Person」對象創建一個'Person'對象似乎有些沒有意義.. – christopher

+0

這是我想的問題的整個觀點。 –

0

簡單多是

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

你的孩子對象總是具有訪問給予適當的訪問修飾符其父的領域很到位。

相關問題