Sobes.tech
Junior — Middle

Կարո՞ղ է Kotlin լեզվում իրականացնել բազմաբնույթ ժառանգություն:

sobes.tech AI

Պատասխան AI-ից

Kotlin- ում բազմաբնույթ ժառանգություն դասերի համար անմիջապես չի աջակցվում, ինչպես նաև Java- ում։ Միայն մեկ դասից կարող է ժառանգել։

Այնուամենայնիվ, Kotlin- ը աջակցում է ինտերֆեյսների բազմաբնույթ ժառանգությանը, որոնք կարող են պարունակել նախնական իրագործումներ։ Սա թույլ է տալիս իրականացնել այնպիսի վարքագիծ, որը նման է բազմաբնույթ ժառանգությանը։

Օրինակ՝

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() // Տպում է՝
             // A
             // B
}

Այսպիսով, Kotlin- ում դասերի բազմաբնույթ ժառանգությունը հնարավոր չէ, բայց ինտերֆեյսների բազմաբնույթ ժառանգությունը՝ հնարավոր է։