Что такое ключевое слово open

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

Ответ

open — модификатор доступа в Kotlin, позволяющий классу или члену класса быть унаследованным/переопределённым за пределами модуля, где он объявлен.

По умолчанию классы в Kotlin final, и для наследования их нужно явно помечать как open.

Пример:

open class Parent {  
    open fun doSomething() {  
        println("Parent logic")  
    }  
}  

class Child : Parent() {  
    override fun doSomething() {  
        println("Child logic")  
    }  
}  

Без open наследование или переопределение невозможно.