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ó.