Sobes.tech
Junior — Middle

Lze v jazyce Kotlin implementovat vícenáslednictví?

sobes.tech AI

Odpověď od AI

V Kotlinu není přímá podpora vícenásobného dědění tříd, stejně jako v Javě. Třída může dědit pouze od jedné třídy.

Nicméně, Kotlin podporuje vícenásobné dědění rozhraní, která mohou obsahovat výchozí implementace. To umožňuje implementovat chování podobné vícenásobnému dědění.

Příklad:

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() // Vypíše:
             // A
             // B
}

Tedy, vícenásobné dědění tříd v Kotlinu není možné, ale vícenásobné dědění rozhraní s výchozími implementacemi je realizovatelné.