Задать вопрос
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();
  • Вопрос задан
  • 2414 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Java-разработчик с нуля
    12 месяцев
    Далее
  • Skillfactory
    Профессия Java-разработчик
    14 месяцев
    Далее
  • Яндекс Практикум
    Java-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
lexxpavlov
@lexxpavlov
Программист, преподаватель
Быстрее было бы самому потестить, поставив вывод в консоль в методе method0() в суперклассе и в субклассе.
Должен вызвать блок Б, потому как это виртуальный метод, и версия кода определяется по реальному классу объекта. Разве что в java есть особый синтаксис с ключевым словом this.
Проверьте лучше сами, это займёт пару минут.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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