创建扩展类型的对象
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;
}
我有一个 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;
}