创建扩展类型的对象

Create object of extended type

我有一个 class 看起来像这样:

public class MyClass1 extends MyClass2 {
  ...
}

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

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

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

中分class:

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

在基地-class:

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