Junior — Middle
Объектке багытталган программалоодо ар кандай полиморфизм түрлөрүн чагылдырган мисал келтире аласызбы?
sobes.tech AI
AIден жооп
Объект-баъдарланган программалоодо, көп формачылык ар түрдүү класстардын объекттерине бирдей аталыштагы метод чакыруларын ар түрдүү иштетүүгө мүмкүндүк берет.
1. Компиляция убактысында көп формачылык (статикалык көп формачылык):
- Методторду ашыкча жүктөө: бир аталыштагы, бирок ар түрдүү параметрлери бар бир нече метод.
class Calculator {
func add(a: Int, b: Int) -> Int {
return a + b
}
func add(a: Double, b: Double) -> Double {
return a + b
}
}
2. Ишке ашыруучу убакыттагы көп формачылык (динамикалык көп формачылык):
- Төмөнкү класстарда методторду кайра аныктоо.
class Animal {
func sound() {
print("Кээ бир үн")
}
}
class Dog: Animal {
override func sound() {
print("Чычылдаган")
}
}
class Cat: Animal {
override func sound() {
print("Мяу")
}
}
let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
animal.sound() // "Чычылдаган" жана "Мяу" чыгат
}
Мындайча айтканда, көп формачылык ар түрдүү объекттер менен иштөө үчүн бир интерфейсти колдонууга мүмкүндүк берет.