Sobes.tech
Back to questions
Junior — Middle
63

Можешь привести пример, иллюстрирующий разные виды полиморфизма в объектно-ориентированном программировании?

Companies where asked
SimbirsoftSimbirsoft

Answer from AI

sobes.tech 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("Some sound")
    }
}

class Dog: Animal {
    override func sound() {
        print("Bark")
    }
}

class Cat: Animal {
    override func sound() {
        print("Meow")
    }
}

let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
    animal.sound()  // Выведет "Bark" и "Meow"
}

Таким образом, полиморфизм позволяет использовать единый интерфейс для работы с разными типами объектов.