Какие знаешь способы применения final

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

Ответ

final в Java/Kotlin имеет несколько применений:

  1. Классы – запрещает наследование:
final class MyClass // нельзя унаследовать
  1. Методы – запрещает переопределение:
open class Parent {
    final fun cantOverride() {}
}
  1. Переменные – делает значение неизменяемым:
final val PI = 3.14 // константа
  1. Параметры – запрещает изменение аргумента внутри метода:
fun process(final param: String) {
    // param = "new" – ошибка
}

В Kotlin val по умолчанию аналогичен final в Java. Для изменяемых переменных используется var.