public abstract class Parent {
private Parent peer;
public Parent() {
peer = new ??????("to call overloaded constructor");
}
public Parent(String someString) {
}
}
public class Child1 extends parent {
}
public class Child2 extends parent {
}当我构造一个对等实例时,我希望自动构造一个同样属于Child1类型的“Child1”,并将其存储在peer属性中。对于类型为Child2的对等体,Child2也是如此。
问题是,在父类中的peer属性的分配上。我不能通过调用new Child1()来构造一个新的子类,因为那样对Child2就不起作用了。我该怎么做呢?有没有一个关键字可以用来指代这个子类?像new self()这样的东西
发布于 2009-05-21 13:48:54
我建议用工厂模式来代替这整个事情,在工厂模式中,你可以完全控制添加了什么,而不需要在构造器中做。
https://stackoverflow.com/questions/891824
复制相似问题