Junior
Дар бораи меросгирӣ дар Kotlin гап занед.
sobes.tech AI
Ҷавоб аз AI
Мавқеи дар Kotlin — механизмист, ки имкон медиҳад, ки синфҳои нав бар асоси синфҳои мавҷудсозӣ эҷод кунанд. Синфи нав (ҳомила ё тавлидшуда) хусусиятҳо ( тағйирёбандаҳо) ва усулҳо (функсияҳо) синфи падар (асосӣ)ро мерос мегирад. Ин такрори истифодаи коди ва эҷоди ҳиерархияҳои синфҳоро ташвиқ мекунад.
Хусусиятҳои асосӣ:
- Ба таври пешфарз, кушода нест: Дар Kotlin, синфҳо ва усулҳо ба таври пешфарз
finalмебошанд, ки маънои онро дорад, ки онҳо мерос гирифта ё бароварда намешаванд. Барои иҷозат додан ба мерос, онҳо бояд ба таври равшан бо калимаи калидииopenишора карда шаванд. - Конструкторҳо: Синфи фарзанда бояд конструктори яке аз синфҳои асосиро даъват кунад (агар чандта бошад, дар ҳолати интерфейсҳо). Ин даъват ҳангоми эълони синфи фарзанда бо истифода аз
(...)анҷом дода мешавад. - Баровардани усулҳо ва хусусиятҳо: Барои баровардани усул ё хусусияти синфи асосӣ дар синфи фарзанда, онҳо бояд дар синфи асосӣ бо
openва дар синфи фарзанда боoverrideишора карда шаванд. super: Калимаи калидииsuperбарои дастрасӣ ба аъзои синфи асосӣ аз синфи фарзанда истифода мешавад.- Мероси оддӣ бо иҷроиш: Kotlin дастгирӣ мекунад мероси оддӣ бо иҷроиш (аз як синф), аммо дастгирӣ мекунад мероси бисёрҷонибаи интерфейсҳо.
Масалан, синфи асосӣ:
// Синфи асосӣ
open class Animal(val name: String) {
open fun makeSound() {
println("$name садо медиҳад")
}
}
Масалан, синфи фарзанда:
// Синфи фарзанда
class Dog(name: String) : Animal(name) {
override fun makeSound() {
println("$name хӯрда")
}
}
Истифода:
// Истифодаи объектҳо
fun main() {
val animal = Animal("Умумии ҳайвон")
animal.makeSound() // Натиҷа: Умумии ҳайвон садо медиҳад
val dog = Dog("Bobby")
dog.makeSound() // Натиҷа: Bobby хӯрда
}