我的班级看起来像这样:
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);
}
答案 0 :(得分:4)
您可以使用复制构造函数,它与您尝试的类似:
在子课程中:
public MyClass1 (MyClass2 source) {
super (source);
}
在基类:
public MyClass2 (MyClass2 source) {
this.var1 = source.var1;
this.var2 = source.var2;
this.var3 = source.var3;
}