#java #class #oop #inheritance
#java #класс #ооп #наследование
Вопрос:
Я знаю, что массив родительского класса может хранить экземпляр любого его подкласса, но возможно ли это с одним объектом:
Вот пример того, что я надеюсь понять:
public class Parent
{
int a;
public Parent(int a)
{
this.a = a;
}
public void function1()
{
//Actions
}
}
public class Child1 extends Parent
{
public Child1(int a)
{
super(a);
}
public void function2()
{
//Actions
}
}
public class Child2 extends Parent
{
public Child2(int a)
{
super(a);
}
public void function3()
{
//Actions
}
}
Теперь, если я выполню следующее:
Parent p1;
Child1 c1 = new Child1(5)
p1 = c1;
p1.function1();
p1.function2();
Смогу ли я запустить function1
метод Parent
класса, а также function2
метод Child1
класса с объектом Parent
класса p1
?
Извините, если это глупый вопрос. Я новичок во всем этом. Кроме того, если это дубликат, и вы пометите его как таковой, я тоже был бы признателен.
Комментарии:
1. Попробуйте скомпилировать свой код.
Ответ №1:
После еще нескольких проб и ошибок и дополнительных исследований я понимаю, что то, чего я надеюсь достичь, невозможно.
Таким образом, для моего проекта я создал отдельные экземпляры каждого класса и при необходимости обращался к ним по отдельности. Это было не то решение, которое я имел в виду, но оно послужило эффективным решением моей проблемы.
PS: К комментарию, в котором указывалось, что этот код не будет работать, они правы, это не так. Это был абстрактный пример, иллюстрирующий мою проблему. Но, возможно, тогда мне не следовало форматировать его как код. Я сразу же это изменю.