Встречается на собеседованиях • сегодня

Почему нельзя сделать поля класса финальными

Финальные поля в Java инициализируются один раз и не могут быть изменены после этого. Однако, их нельзя сделать финальными по умолчанию, потому что:

  1. Гибкость – не все поля должны быть неизменяемыми. Например, состояние объекта может меняться в процессе работы.
  2. Ленивая инициализация – иногда поля инициализируются не в конструкторе, а позже (например, через сеттеры или ленивые вычисления).
  3. Наследование – если класс наследуется, дочерний класс может захотеть изменить поле.

Пример:

java
class Example {
    private final int immutableValue; // Должен быть инициализирован в конструкторе
    private int mutableValue; // Может изменяться

    public Example(int value) {
        this.immutableValue = value;
    }

    public void setMutableValue(int value) {
        this.mutableValue = value; // Без final можно изменять
    }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы