Junior
V čem spočívá smysl polymorfismu v programování?
sobes.tech AI
Odpověď od AI
Polymorfismus umožňuje používat objekty různých tříd, které mají společné rozhraní, prostřednictvím společného "typu" (například základní třídy nebo rozhraní).
Jeho hlavní smysl:
- Unifikace práce s objekty: Umožňuje psát kód, který nezávisí na konkrétním typu objektu, ale s ním pracuje prostřednictvím abstrakce.
- Flexibilita: Je snadné přidávat nové třídy, které implementují stejné rozhraní, aniž by bylo nutné měnit stávající kód, který toto rozhraní využívá.
- Čitelnost a udržovatelnost: Kód je strukturovanější a srozumitelnější, protože složitost konkrétní implementace je skryta za jednotné rozhraní.
Princip spočívá v tom, že stejná metoda, volaná na různých objektech, se chová odlišně v závislosti na jejich konkrétním typu.
Příklad v 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); // Vytiskne "Woof!"
hearAnimalSound($cat); // Vytiskne "Meow!"
?>
V tomto příkladu funkce hearAnimalSound přijímá jakýkoli objekt, který implementuje rozhraní Animal. Volání metody makeSound() uvnitř této funkce se chová odlišně pro objekty Dog a Cat, čímž demonstruje polymorfismus.