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