Переопределение методов в Kotlin
Потомок может заменить реализацию метода родителя. Родительский
метод помечают open, в потомке пишут override
и новое тело:
open class User {
var age: Int = 0
open fun setAge(age: Int) {
if (age >= 0) {
this.age = age
}
}
}
В Employee сузим допустимый возраст:
class Employee : User() {
override fun setAge(age: Int) {
if (age in 18..65) {
this.age = age
}
}
}
При вызове у объекта потомка выполняется версия из Employee:
fun main() {
val employee = Employee()
employee.setAge(25)
println(employee.age)
}
В классе User сделайте
геттер и сеттер возраста.
В классе Employee переопределите
сеттер возраста и сделайте в нем
проверку на то, что возраст от
18 до 65 лет.