Открыты ли по умолчанию для наследования классы в Kotlin

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

Ответ

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

open class Parent { // теперь можно наследовать
    // ...
}

class Child : Parent() { // корректно
    // ...
}

Для методов и свойств действует то же правило – по умолчанию они final, требуется явное указание open. Это принцип "закрыто по умолчанию" в Kotlin способствует более безопасному дизайну API.