Sobes.tech
Back to questions
Junior
183

Что такое полиморфизм в программировании?

Answer from AI

sobes.tech AI

Полиморфизм — это способность объектов разных классов реагировать на одинаковые сообщения (вызовы методов) по-разному.

Проще говоря, один и тот же метод может вести себя по-разному в зависимости от объекта, который его вызывает. Это достигается через наследование и переопределение методов, а также через использование интерфейсов.

Пример на Swift:

protocol Animal {
    func makeSound()
}

class Dog: Animal {
    func makeSound() {
        print("Гав")
    }
}

class Cat: Animal {
    func makeSound() {
        print("Мяу")
    }
}

func playSound(animal: Animal) {
    animal.makeSound()
}

let dog = Dog()
let cat = Cat()

playSound(animal: dog) // Выведет: Гав
playSound(animal: cat) // Выведет: Мяу

Здесь функция playSound принимает объект типа Animal, но в зависимости от конкретного класса (Dog или Cat) вызывается соответствующая реализация метода makeSound.