Sobes.tech
Junior — Middle

Czy można zaimplementować wielodziedziczenie w języku Kotlin?

sobes.tech AI

Odpowiedź od AI

W Kotlinie dziedziczenie wielokrotne klas nie jest obsługiwane bezpośrednio, podobnie jak w Javie. Klasa może dziedziczyć tylko po jednej klasie.

Jednak Kotlin obsługuje dziedziczenie wielokrotne interfejsów, które mogą zawierać domyślne implementacje. Pozwala to na implementację zachowania podobnego do dziedziczenia wielokrotnego.

Przykład:

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() // Wypisze:
             // A
             // B
}

Tak więc, dziedziczenie wielokrotne klas w Kotlinie nie jest możliwe, ale można zaimplementować dziedziczenie wielokrotne interfejsów z domyślnymi implementacjami.