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.