Ваш класс должен быть абстрактным? Может быть, код ниже может быть полезен:
open class MyClass {
companion object myCompanion {
val myStatic = "MyClass"
}
open val myStatic = myCompanion.myStatic
}
class MySubClass : MyClass() {
companion object myCompanionSubClass {
val myStatic = "MySubClass"
}
override var myStatic = myCompanionSubClass.myStatic
}
fun main() {
println(MyClass.myStatic)
val t = MyClass()
println(t.myStatic)
println(MySubClass.myStatic)
val subClass = MySubClass()
println(subClass.myStatic)
}
В этом коде вы можете определить свойство stati c и использовать его из класса или любого экземпляра. Также возможно переопределить свойство в подклассе и использовать его таким же образом.