Ответ
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), оптимизации и явного запрета модификаций.