Sobes.tech
Junior — Middle

Bir metodning sinfda bir xil nom va imzo bilan amalga oshirilishi va uning ortiqcha yuklanishi bilan, va meros olgan sinflarda metodni qayta yozish o'rtasidagi farqni tushuntiring.

sobes.tech AI

AIdan javob

Usul qilish (overloading) — bu bir sinfda bir xil nomli, ammo turli imzolar (turli parametrlar to'plami) bilan bir nechta metodlar yaratilganda yuzaga keladi. Bu metodni turli argumentlar bilan chaqirish imkonini beradi va kompilyator mos variantni tanlaydi.

Yozilish (overriding) meros olgan sinfda yuzaga keladi, bunda asosiy sinfdagi imzoga ega metod qayta amalga oshiriladi, bu esa asosiy metodning xulq-atvorini o'zgartirish yoki kengaytirish uchun.

Swift misoli:

class Animal {
    func sound() {
        print("Bir ovoz")
    }
}

class Dog: Animal {
    override func sound() { // yozilish
        print("Hovlash")
    }

    func sound(volume: Int) { // usulni ortiqcha qilish
        print("Hovlash ovoz darajasida \(volume)")
    }
}

Bu yerda, sound() Dog sinfida asosiy sinf Animal metodini yozadi, va sound(volume:) boshqa parametrlar to'plami bilan usulni ortiqcha qiladi.