saroff
@saroff
Enterprise Java Developer

Работает ли полиморфизм при вызове методов внутри суперкласса?

Вопрос примерно такой, есть суперкласс
public class SuperClass {
//...
public void method0(){ /*Назовем этот блок кода А*/}
public void method1(){ this.method0() };
//...
}

И наследуемый от него класс
public class SubClass extends SuperClass {
//...
@Override
public void method0(){ /*А этот Б*/}
//...
}

Какой код будет выполнен в результате следующего вызова:
SuperClass ob = new SubClass();
ob.method1();
  • Вопрос задан
  • 2413 просмотров
Пригласить эксперта
Ответы на вопрос 1
lexxpavlov
@lexxpavlov
Программист, преподаватель
Быстрее было бы самому потестить, поставив вывод в консоль в методе method0() в суперклассе и в субклассе.
Должен вызвать блок Б, потому как это виртуальный метод, и версия кода определяется по реальному классу объекта. Разве что в java есть особый синтаксис с ключевым словом this.
Проверьте лучше сами, это займёт пару минут.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
16 мая 2024, в 23:36
200000 руб./за проект
16 мая 2024, в 23:10
12000 руб./за проект