Sobes.tech
Junior

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

sobes.tech AI

Отговор от AI

Полиморфизмът позволява използването на обекти от различни класове, които имат общ интерфейс, чрез общ "тип" (например, базов клас или интерфейс).

Основната му цел:

  • Уеднаквяване на работата с обекти: Позволява писането на код, който не зависи от конкретния тип на обекта, а работи с него чрез абстракция.
  • Гъвкавост: Лесно е да се добавят нови класове, които реализират същия интерфейс, без да се променя съществуващият код, който използва тази абстракция.
  • Четливост и поддръжка: Кодът става по-структуриран и разбираем, тъй като сложността на конкретната реализация се скрива зад единен интерфейс.

Принципът се състои в това, че една и съща метода, извикана на различни обекти, се държи по различен начин, в зависимост от техния конкретен тип.

Пример в PHP:

<?php

interface Animal {
    public function makeSound();
}

class Dog implements Animal {
    public function makeSound() {
        return "Woof!";
    }
}

class Cat implements Animal {
    public function makeSound() {
        return "Meow!";
    }
}

function hearAnimalSound(Animal $animal) {
    echo $animal->makeSound() . "\n";
}

$dog = new Dog();
$cat = new Cat();

hearAnimalSound($dog); // Ще изведе "Woof!"
hearAnimalSound($cat); // Ще изведе "Meow!"

?>

В този пример, функцията hearAnimalSound приема всеки обект, който реализира интерфейса Animal. Вътре в тази функция, извикването на метода makeSound() се държи по различен начин за обектите Dog и Cat, демонстрирайки полиморфизма.