Наследование

Наследование

Все классы в языке Kotlin наследуют из класса Any, но по мере необходимости можно также указать класс как производный (дочерний, класс потомок; далее в тексте производный) от любого другого класса.

Чтобы указать суперкласс необходимо название суперкласса написать после двоеточия:

open class Parent(param: Int)
class Derived(param: Int) : Parent(param)

Если необходимо передать аргументы базовому классу, их надо принять в производном классе и при указании базового класса передать необходимые его конструктору.

Если в производном классе нет первостепенного конструктора, тогда все второстепенные конструкторы должны получить и передать необходимые аргументы базовому классу путём вызова функции super, что является вызовом конструктора родительского класса. Если второстепенные конструкторы используются только для передачи полученных параметров базовому классу и не используются какие-либо расчёты писать тело этих функций необязательно:

class MyView : View {
    constructor(context: Context) : super(context)
    constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
}