Открытые свойства при наследовании в Kotlin
Свойство родителя по умолчанию нельзя переопределить. Чтобы
потомок мог задать своё значение, свойство помечают open,
в потомке - override:
open class User {
open val role: String = "user"
}
class Employee : User() {
override val role: String = "employee"
}
У объекта потомка читается переопределённое свойство:
fun main() {
val employee = Employee()
println(employee.role)
}
Тот же приём работает для вычисляемого свойства с геттером:
open class User {
open val label: String
get() = "User"
}
class Employee : User() {
override val label: String
get() = "Employee"
}
В классе User объявите открытое
свойство department со значением
'general'.
В классе Employee переопределите
это свойство и задайте ему значение
'staff'.