Sobes.tech
Junior

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

sobes.tech AI

Отговор от 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.