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-ში კლასების მრავალმემკვიდრეობა შეუძლებელია, მაგრამ ინტერფეისების მრავალმემკვიდრეობა რეალიზებადი არის.