Общий расширитель родительского класса ⇐ JAVA
-
Гость
Общий расширитель родительского класса
У меня есть 2 родительских класса и дочерний класс, и я пытаюсь заставить этот поток работать (обратите внимание, я знаю, что есть другие обходные пути и все такое, но я не пытаюсь инициализировать переменную в конструкторе и тому подобное). , это всего лишь доказательство концепции):
публичный класс Child{ Строка testVar1; } публичный класс ParentA расширяет Child{ Строка testVar2; } публичный класс ParentA расширяет Child{ Логическое значение testVar3; } У меня также есть такой метод:
public Child createChild(){ вернуть новый дочерний элемент («testString») } // вызываемый метод ▼ ▼ ▼ ▼ общественный РодительA createParentA(){ возврат (ParentA) createChild(); } общественный родительB createParentB(){ возврат (ParentB) createChild(); } Это, конечно, не получится, поскольку вы не можете создать экземпляр родительского класса, приведя тип дочернего класса. Я пытаюсь сделать все невызываемые переменные в родительском классе равными нулю, поэтому в этом случае предполагается создать объект, который выглядит следующим образом:
{ testVar1 = "привет", testVar2 = ноль } У меня также была идея, где мы могли бы сделать что-то вроде:
public T createChild(Class родительский класс){ вернуть (parentClass) новый дочерний элемент ("testString") } // вызываемый метод ▼ ▼ ▼ ▼ общественный РодительA createParentA(){ вернуть createChild(ParentA.class); } общественный родительB createParentB(){ вернуть createChild(ParentB.class); } Я знаю, что это неправильный способ написания кода, но вы поняли, что я пытаюсь сделать. Есть ли способ заставить метод напрямую приводить к родительскому классу?
У меня есть 2 родительских класса и дочерний класс, и я пытаюсь заставить этот поток работать (обратите внимание, я знаю, что есть другие обходные пути и все такое, но я не пытаюсь инициализировать переменную в конструкторе и тому подобное). , это всего лишь доказательство концепции):
публичный класс Child{ Строка testVar1; } публичный класс ParentA расширяет Child{ Строка testVar2; } публичный класс ParentA расширяет Child{ Логическое значение testVar3; } У меня также есть такой метод:
public Child createChild(){ вернуть новый дочерний элемент («testString») } // вызываемый метод ▼ ▼ ▼ ▼ общественный РодительA createParentA(){ возврат (ParentA) createChild(); } общественный родительB createParentB(){ возврат (ParentB) createChild(); } Это, конечно, не получится, поскольку вы не можете создать экземпляр родительского класса, приведя тип дочернего класса. Я пытаюсь сделать все невызываемые переменные в родительском классе равными нулю, поэтому в этом случае предполагается создать объект, который выглядит следующим образом:
{ testVar1 = "привет", testVar2 = ноль } У меня также была идея, где мы могли бы сделать что-то вроде:
public T createChild(Class родительский класс){ вернуть (parentClass) новый дочерний элемент ("testString") } // вызываемый метод ▼ ▼ ▼ ▼ общественный РодительA createParentA(){ вернуть createChild(ParentA.class); } общественный родительB createParentB(){ вернуть createChild(ParentB.class); } Я знаю, что это неправильный способ написания кода, но вы поняли, что я пытаюсь сделать. Есть ли способ заставить метод напрямую приводить к родительскому классу?