Sobes.tech
Junior — Middle

Може ли се реализовати мултинаследност у језику Kotlin?

sobes.tech АИ

Одговор од АИ

U Kotlin-u višestruko nasleđivanje klasa nije direktno podržano, kao ni u Javi. Klasa može nasleđivati samo od jedne klase.

Međutim, Kotlin podržava višestruko nasleđivanje interfejsa, koji mogu sadržavati podrazumevana implementacija. Ovo omogućava implementaciju ponašanja sličnog višestrukom nasleđivanju.

Primer:

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() // Ispisaće:
             // A
             // B
}

Dakle, višestruko nasleđivanje klasa u Kotlin-u nije moguće, ali višestruko nasleđivanje interfejsa sa implementacijama jeste realizovano.