Sobes.tech
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.
  • class kalit so'zi ishlatiladi.
  • Bolalar sinfi ota sinf nomidan keyin ikki nuqta bilan ko'rsatiladi.
  • Ota sinf metodlari override kalit so'zi yordamida qayta yozilishi mumkin.
  • Ota sinfning amalga oshirilishiga kirish super kalit 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.