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.Вызов конструктора подкласса из абстрактного класса в Java
Проблема заключается в присвоении одноранговой собственности в родительском классе. Я не могу создать новый класс Child, вызвав new Child1()
, потому что тогда он не будет работать для Child2. Как я могу это сделать? Есть ли ключевое слово, которое я могу использовать, чтобы ссылаться на дочерний класс? Что-то вроде new self()
?
Кажется, это странный образец для меня. Можете ли вы лучше использовать «ParentFactory» для создания экземпляров этих объектов? –
Это очень странный дизайн. Возможно, кто-то из сверстников был бы исходным объектом? – Thilo
Что будет с _peer_? Я имею в виду, какое использование оно служит, или какое-либо практическое вдохновение для этого. – soufrk