Как переопределить методы при наследовании от класса в Kotlin

«Как переопределить методы при наследовании от класса в Kotlin» — вопрос из категории Kotlin, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Kotlin переопределение методов требует явного указания модификатора open для родительского метода и override для дочернего:

open class Parent {
    open fun doSomething() {
        println("Parent implementation")
    }
}

class Child : Parent() {
    override fun doSomething() {
        println("Child implementation")
        super.doSomething() // вызов родительской реализации
    }
}

Ключевые моменты:

  1. Класс должен быть open для наследования
  2. Метод должен быть open для переопределения
  3. Обязательно использовать override в дочернем классе
  4. Можно вызвать родительскую реализацию через super

В Kotlin классы и методы по умолчанию final - это отличие от Java.