Java Core junior

Overload vs Override — в чём разница?

Ответ

Overload (перегрузка): несколько методов с одним именем, но разными параметрами в одном классе. Компилятор выбирает статически (статическое связывание). Override (переопределение): подкласс меняет реализацию метода родителя с той же сигнатурой, а вызов разрешается динамически по фактическому типу объекта (динамическое связывание).

Разбор: Overload (перегрузка) — это несколько методов с одним именем, но разными параметрами в одном классе, выбор делает компилятор статически. Override (переопределение) — подкласс заменяет реализацию метода родителя с той же сигнатурой, вызов разрешается динамически по фактическому типу объекта. Первый и третий дистракторы меняют определения и виды связывания местами; во втором — отличие только по возвращаемому типу не считается перегрузкой и приведёт к ошибке компиляции.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться