创建扩展类型的对象

时间:2017-05-29 07:50:59

标签: java extends

我的班级看起来像这样:

public class MyClass1 extends MyClass2 {
  ...
}

现在我有一个MyClass2的对象,想要创建一个MyClass1类型的Object。如何才能做到这一点?以下不是一个非常好的方法:

MyClass2 origin = new MyClass2();
MyClass1 goal = new MyClass1();
goal.var1 = origin.var1;
goal.var2 = origin.var2;
goal.var3 = origin.var3;

这种方式不起作用但感觉方向正确吗?

public MyClass2(MyClass2 copy){
  this = copy;
}

public MyClass1(MyClass2 copy){
  super(copy);
}

1 个答案:

答案 0 :(得分:4)

您可以使用复制构造函数,它与您尝试的类似:

在子课程中:

public MyClass1 (MyClass2 source) {
    super (source);
}

在基类:

public MyClass2 (MyClass2 source) {
    this.var1 = source.var1;
    this.var2 = source.var2;
    this.var3 = source.var3;
}