Junior
Dasturlashda meros olish haqida nima ayta olasiz?
sobes.tech AI
AIdan javob
Meros qilish - bu ob'ektga yo'naltirilgan dasturlash mexanizmi bo'lib, u bir sinfga (voris yoki bolalar sinfi) boshqa sinf (ota yoki asosiy sinf) xususiyatlari va metodlarini meros qilib olish imkonini beradi.
Asosiy tushunchalar:
- Kodning qayta ishlatilishi: Meros qilish bolalar sinfga ota sinfining mavjud kodidan foydalanishga imkon beradi, takrorlashdan qochadi.
- is-a munosabati: Meros qilish "bir narsa" (is-a) munosabatini modellashtiradi. Masalan, "Bir it bir sutemizuvchi".
- Kengaytirish: Bolalar sinfi yangi xususiyatlar va metodlar qo'shishi yoki mavjud metodlarni (override) qayta yozishi mumkin, bu uning xulqini o'zgartiradi.
Swiftda:
- Meros qilish faqat sinflar uchun qo'llab-quvvatlanadi. Tuzilmalar va enumlar meros olmaydi.
classkalit so'zi ishlatiladi.- Bolalar sinfi ota sinf nomidan keyin ikki nuqta bilan ko'rsatiladi.
- Ota sinf metodlari
overridekalit so'zi yordamida qayta yozilishi mumkin. - Ota sinfning amalga oshirilishiga kirish
superkalit so'zi orqali amalga oshiriladi.
Misol:
class Animal {
var name: String
init(name: String) {
self.name = name
}
func makeSound() {
print("Noma'lum tovush")
}
}
class Dog: Animal {
func bark() {
print("Gav!")
}
override func makeSound() {
print("Gav-gav!")
}
}
let myDog = Dog(name: "Baron")
myDog.makeSound() // Chiqish: Gav-gav!
myDog.bark() // Chiqish: Gav!
Meros qilishni ortiqcha yoki noto'g'ri qo'llash kodning moslashuvchanligi va texnik xizmat ko'rsatish qiyinchiliklariga olib kelishi mumkin (masalan, "mayda qobiq muammosi"). Swiftda, odatda, moslashuvchanlik uchun kompozitsiya va protokollar kabi boshqa mexanizmlar afzal ko'riladi.