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 δεν είναι δυνατή, αλλά η πολλαπλή κληρονομιά διεπαφών με υλοποιήσεις είναι εφικτή.