抽象类的复制构造函数
2022-09-04 02:49:51
我有一个名为 的抽象类。在我拥有的同一包中,我有一个对象。在复制构造函数中,我需要在 .AClass
AnotherClass
ArrayList
AClass
AnotherClass
AClass
ArrayList
问题:
我无法在 中创建复制构造函数,因为它是一个抽象类,并且我不知道将由 继承的类的名称。实际上,在此项目中,不会从此类继承任何对象,但是此项目将被其他项目用作库,这些项目将提供 类子级 。我的设计中是否有错误,或者是否有解决此问题的方法?AClass
AClass
AClass
编辑:这里有一些代码:
public class AnotherClass{
private ArrayList<AClass> list;
...
/** Copy constructor
*/
public AnotherClass(AnotherClass another){
// copy all fields from "another"
this.list = new ArrayList<AClass>();
for(int i = 0; i < another.list.size(); i++){
// Option 1: this.list.add(new AClass(another.list.get(i)));
// problem: cannot instantiate AClass as it is abstract
// Option 2: this.list.add(another.list.get(i).someKindOfClone());
// problem? I'm thinking about it, seems to be what dasblinkenlight is suggesting below
}
}
...
}