Sobes.tech
Назад к вопросам
Junior — Middle
64

Можно ли реализовать множественное наследование в языке Kotlin?

Компании, где спрашивали
Astra
СБЕР ЗвукСБЕР Звук

Ответ от нейросети

sobes.tech AI

В Kotlin множественное наследование классов напрямую не поддерживается, как и в Java. Класс может наследоваться только от одного класса.

Однако Kotlin поддерживает множественное наследование интерфейсов, которые могут содержать реализации по умолчанию. Это позволяет реализовать поведение, похожее на множественное наследование.

Пример:

interface A {
    fun foo() { println("A") }
}

interface B {
    fun foo() { println("B") }
}

class C : A, B {
    override fun foo() {
        super<A>.foo()
        super<B>.foo()
    }
}

fun main() {
    val c = C()
    c.foo() // Выведет:
             // A
             // B
}

Таким образом, множественное наследование классов в Kotlin нельзя, но можно реализовать множественное наследование интерфейсов с реализациями.