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