Сопоставление Middle ООП и класс Object обновлено

Правила переопределения

Вопрос

Сопоставьте изменение при переопределении метода и можно ли так делать.

Попробуйте сами

Нажмите слева, потом подходящее справа.

Показать ответ и разбор

Коротко

Переопределение не должно ломать код, который работает с родительским типом: доступ можно только расширить, возврат только сузить, checked-исключения только сузить или убрать. Другие параметры дают новый перегруженный метод.

Правильные пары

Вернуть подтип возвращаемого типа
Можно: ковариантный возврат
Сделать protected метод public
Можно: доступ расширяется
Сделать public метод protected
Нельзя: доступ сужается
Добавить более широкое checked-исключение
Нельзя: нарушит контракт вызывающих
Поменять типы параметров
Это уже перегрузка

Разбор

Переопределение не должно ломать код, который работает с родительским типом: доступ можно только расширить, возврат только сузить, checked-исключения только сузить или убрать. Другие параметры дают новый перегруженный метод.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.