Junior — Middle
Czy można zaimplementować wielodziedziczenie w języku Kotlin?
sobes.tech AI
Odpowiedź od AI
W Kotlinie dziedziczenie wielokrotne klas nie jest obsługiwane bezpośrednio, podobnie jak w Javie. Klasa może dziedziczyć tylko po jednej klasie.
Jednak Kotlin obsługuje dziedziczenie wielokrotne interfejsów, które mogą zawierać domyślne implementacje. Pozwala to na implementację zachowania podobnego do dziedziczenia wielokrotnego.
Przykład:
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() // Wypisze:
// A
// B
}
Tak więc, dziedziczenie wielokrotne klas w Kotlinie nie jest możliwe, ale można zaimplementować dziedziczenie wielokrotne interfejsów z domyślnymi implementacjami.