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.
Проверьте лучше сами, это займёт пару минут.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы