从父级创建子对象的最佳方法

时间:2013-08-19 22:50:55

标签: java inheritance downcast

在给父母提供数据的情况下,创建孩子的最佳方法是什么? 是否可以在子类上使用包含所有父值的方法:

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);

2 个答案:

答案 0 :(得分:12)

我建议在父类中创建一个接受Parent类型对象的构造函数。

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

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

答案 1 :(得分:0)

更简单的是

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

在适当的访问修饰符到位的情况下,您的子对象始终可以访问其父对象字段。