Для чего нужно ключевое слово final

«Для чего нужно ключевое слово final» — вопрос из категории Java, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

final в Java/Kotlin используется для обозначения неизменяемости:

  • Для переменных — значение нельзя изменить после инициализации.
  • Для методов — нельзя переопределить в подклассах.
  • Для классов — нельзя наследовать.

Пример в Kotlin:

final class Parent { // Класс нельзя наследовать
    final fun doSomething() { // Метод нельзя переопределить
        val pi = 3.14 // `val` в Kotlin == `final` в Java (неизменяемая переменная)
    }
}

В Java:

final class ImmutableClass {
    final int value = 42; // Неизменяемое поле
}

Используется для безопасности (immutability), оптимизации и явного запрета модификаций.