Java Core middle

final у класса, метода и поля?

Ответ

Класс — нельзя наследовать. Метод — нельзя переопределить. Поле — нельзя переприсваивать (но можно менять внутреннее состояние, если поле — ссылка на mutable-объект).

Разбор: final на классе запрещает наследование, на методе — переопределение (override, не overload), на поле — повторное присваивание. Ловушка в том, что final-поле-ссылка защищает только саму ссылку: внутреннее состояние mutable-объекта по-прежнему можно менять. final не делает класс абстрактным, не влияет на видимость, не добавляет потокобезопасность и не замораживает состояние объекта по ссылке.

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

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