Ответ
В Kotlin классы по умолчанию final (закрытые для наследования). Чтобы разрешить наследование, нужно явно указать модификатор open:
class FinalClass // Нельзя наследовать
open class OpenClass // Можно наследовать
Это принципиальное отличие от Java, где классы по умолчанию открыты. Такое поведение в Kotlin способствует лучшему проектированию, так как наследование должно быть осознанным решением. Для переопределения методов также требуется open.