Sobes.tech
Junior — Middle

Ar įmanoma įgyvendinti daugiavaikystę Kotlin kalboje?

sobes.tech AI

Atsakymas iš AI

Kotlin'e tiesioginė daugiavaikystė klasių nėra palaikoma, kaip ir Java. Klasė gali paveldėti tik iš vienos klasės.

Tačiau Kotlin palaiko daugiavaikystę interfeisų, kurie gali turėti numatytąsias įgyvendinimus. Tai leidžia įgyvendinti elgesį, panašų į daugiavaikystę.

Pavyzdys:

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() // Išves:
             // A
             // B
}

Taigi, Kotlin'e klasių daugiavaikystė nėra įmanoma, tačiau interfeisų daugiavaikystė su įgyvendinimais yra įgyvendinama.