Sobes.tech
Back to questions
Junior — Middle
67

Можешь ли ты перечислить различные типы полиморфизма в объектно-ориентированном программировании?

Companies where asked
Суши ВокСуши Вок

Answer from AI

sobes.tech AI

В объектно-ориентированном программировании (ООП) выделяют несколько основных типов полиморфизма:

  1. Полиморфизм подтипов (Subtype Polymorphism) — самый распространённый тип, реализуемый через наследование и переопределение методов. Позволяет использовать объекты подклассов вместо объектов базового класса.

  2. Параметрический полиморфизм (Parametric Polymorphism) — реализуется через обобщённые типы (generics), когда функции или классы работают с любыми типами данных.

  3. Ад-хок полиморфизм (Ad-hoc Polymorphism) — включает перегрузку функций и операторов, когда одна функция имеет несколько реализаций с разными типами параметров.

  4. Полиморфизм времени выполнения (Runtime Polymorphism) — достигается через виртуальные методы и динамическое связывание, когда вызов метода определяется во время исполнения.

Пример полиморфизма подтипов на Swift (iOS):

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()  // Вызов метода зависит от реального типа объекта
}