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()  // Чавон "Бух" ва "Мяу" мебарорад
}

Ҳамин тариқ, полиморфизм имкон медиҳад, ки барои кор бо намудҳои гуногуни объектҳо интерфейси ягона истифода шавад.