Sobes.tech
Back to questions
Junior — Middle
81

Можно ли применять модификатор open к данным классам в Kotlin?

Companies where asked
Магнит Тех

Answer from AI

sobes.tech AI

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

Можно применять модификатор open к любым классам, кроме тех, которые объявлены с модификаторами sealed, data, enum или abstract (у abstract классов наследование уже разрешено, поэтому open не нужен).

Пример:

open class Animal {
    open fun sound() = println("Some sound")
}

class Dog : Animal() {
    override fun sound() = println("Bark")
}

Здесь open позволяет классам и методам быть переопределёнными.