Junior — Middle
Obyektga yo'naltirilgan dasturlashda turli xil polimorfizm turlarini ko'rsatadigan misol keltira olasizmi?
sobes.tech AI
AIdan javob
Obyektga yo'naltirilgan dasturlashda polimorfizm turli sinflardan bo'lgan obyektlarga bir xil nomdagi metod chaqiruvlarini turlicha ishlash imkonini beradi.
1. Kompilyatsiya vaqtidagi polimorfizm (statik polimorfizm):
- Metodlar ortiqcha yuklanishi — bir nomli, ammo turli parametrlar bilan bir nechta metod.
class Calculator {
func add(a: Int, b: Int) -> Int {
return a + b
}
func add(a: Double, b: Double) -> Double {
return a + b
}
}
2. Ishga tushirish vaqtidagi polimorfizm (dinamik polimorfizm):
- Subklasslarda metodlarni qayta yozish.
class Animal {
func sound() {
print("Bir ovoz")
}
}
class Dog: Animal {
override func sound() {
print("Hovuch")
}
}
class Cat: Animal {
override func sound() {
print("Miyov")
}
}
let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
animal.sound() // "Hovuch" va "Miyov" chiqaradi
}
Shu tarzda, polimorfizm turli obyekt turlari bilan ishlash uchun yagona interfeysdan foydalanishga imkon beradi.