Sobes.tech
Junior — Middle

Lehet-e több öröklődést megvalósítani a Kotlin nyelvben?

sobes.tech MI

Válasz az MI-től

Kotlinban a több öröklés osztályok esetében nem támogatott közvetlenül, hasonlóan a Java-hoz. Egy osztály csak egy osztályból örökölhet.

Azonban, Kotlin támogatja az interfészek több öröklését, amelyek tartalmazhatnak alapértelmezett implementációkat. Ez lehetővé teszi olyan viselkedés megvalósítását, ami hasonlít a több örökléshez.

Példa:

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() // Kiírja:
             // A
             // B
}

Tehát, a Kotlinban az osztályok több öröklése nem lehetséges, de az interfészek több öröklése alapértelmezett implementációkkal megvalósítható.