Ответ
В Kotlin переопределение методов требует явного указания модификатора open для родительского метода и override для дочернего:
open class Parent {
open fun doSomething() {
println("Parent implementation")
}
}
class Child : Parent() {
override fun doSomething() {
println("Child implementation")
super.doSomething() // вызов родительской реализации
}
}
Ключевые моменты:
- Класс должен быть
openдля наследования - Метод должен быть
openдля переопределения - Обязательно использовать
overrideв дочернем классе - Можно вызвать родительскую реализацию через
super
В Kotlin классы и методы по умолчанию final - это отличие от Java.