Sobes.tech
Junior — Middle

Vai Kotlin valodā ir iespējams īstenot daudzveidību?

sobes.tech AI

Atbilde no AI

Kotlin tieši klases daudzmantošana nav tieši atbalstīta, tāpat kā Java. Klase var manto tikai no vienas klases.

Tomēr, Kotlin atbalsta vairākas interfeisu mantošanas iespējas, kas var saturēt noklusējuma realizācijas. Tas ļauj īstenot uzvedību, kas līdzinās daudzmantošanai.

Piemērs:

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() // Izdrukās:
             // A
             // B
}

Tādējādi, Kotlin klases daudzmantošana nav iespējama, bet interfeisu daudzmantošana ar realizācijām ir realizējama.