Sobes.tech
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()  // "Чычылдаган" жана "Мяу" чыгат
}

Мындайча айтканда, көп формачылык ар түрдүү объекттер менен иштөө үчүн бир интерфейсти колдонууга мүмкүндүк берет.