Ответ
Модификатор open в Kotlin позволяет классу или члену класса (методу, свойству) быть переопределённым или унаследованным за пределами модуля, где он объявлен. Это самый открытый уровень доступа, в отличие от public, который разрешает наследование только внутри модуля.
Пример:
open class Parent {
open fun show() = println("Parent")
}
class Child : Parent() {
override fun show() = println("Child")
}
Здесь Parent можно унаследовать, а show() — переопределить, так как они помечены open.