Ответ
В Kotlin классы по умолчанию final (закрыты для наследования). Чтобы разрешить наследование, нужно явно пометить класс ключевым словом open:
open class Parent { // теперь можно наследовать
// ...
}
class Child : Parent() { // корректно
// ...
}
Для методов и свойств действует то же правило – по умолчанию они final, требуется явное указание open. Это принцип "закрыто по умолчанию" в Kotlin способствует более безопасному дизайну API.