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, демонстрирайки полиморфизма.