【发布时间】:2009-05-21 07:58:37
【问题描述】:
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 类型的“对等体”,并将其存储在对等属性中。对于 Child2 也是如此,具有 Child2 类型的对等体。
问题在于,在父类中对等属性的赋值。我不能通过调用new Child1() 来构造一个新的 Child 类,因为这样它就不适用于 Child2。我怎样才能做到这一点?有没有我可以使用的关键字来引用子类? new self() 之类的东西?
【问题讨论】:
-
对我来说似乎是一个奇怪的模式。使用“ParentFactory”实例化这些对象会更好吗?
-
这是一个很奇怪的设计。我想对等点的对等点将是原始对象?
-
peer 会变成什么样子?我的意思是它有什么用处,或者对此有什么实际的启发。
标签: java