Являются ли классы в Kotlin наследуемыми по умолчанию без дополнительных модификаторов?

В Kotlin классы по умолчанию не наследуемы. Чтобы класс можно было унаследовать, его нужно объявить с модификатором open.

Короткий ответ

Что ответить на собеседовании

В Kotlin классы по умолчанию не наследуемы. Чтобы класс можно было унаследовать, его нужно объявить с модификатором open.

Подробный разбор

Ответ с пояснениями

В Kotlin классы по умолчанию не наследуемы. Чтобы класс можно было унаследовать, его нужно объявить с модификатором open.

Пример:

open class Base {
    fun hello() = println("Hello")
}

class Derived : Base() {
}

Если убрать open у Base, то попытка наследования вызовет ошибку компиляции. Это сделано для повышения безопасности и предотвращения нежелательного наследования.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку