Являются ли классы в Kotlin закрытыми или открытыми по умолчанию

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

Ответ

В Kotlin классы по умолчанию final (закрытые для наследования). Чтобы разрешить наследование, нужно явно указать модификатор open:

class FinalClass // Нельзя наследовать

open class OpenClass // Можно наследовать

Это принципиальное отличие от Java, где классы по умолчанию открыты. Такое поведение в Kotlin способствует лучшему проектированию, так как наследование должно быть осознанным решением. Для переопределения методов также требуется open.