Junior
Care este sensul polimorfismului în programare?
sobes.tech AI
Răspuns de la AI
Polimorfismul permite utilizarea obiectelor din clase diferite, care au o interfață comună, printr-un "tip" comun (de exemplu, o clasă de bază sau o interfață).
Scopul său principal:
- Unificarea lucrului cu obiecte: Permite scrierea de cod care nu depinde de tipul specific al obiectului, ci lucrează cu el prin abstracție.
- Flexibilitate: Este ușor să adaugi noi clase care implementează aceeași interfață, fără a modifica codul existent care utilizează această abstracție.
- Citibilitate și întreținere: Codul devine mai structurat și mai ușor de înțeles, deoarece complexitatea implementării concrete este ascunsă în spatele unei interfețe unice.
Principiul constă în faptul că aceeași metodă, apelată pe diferite obiecte, se comportă diferit, în funcție de tipul lor concret.
Exemplu în 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); // Va afișa "Woof!"
hearAnimalSound($cat); // Va afișa "Meow!"
?>
În acest exemplu, funcția hearAnimalSound acceptă orice obiect care implementează interfața Animal. Apelul metodei makeSound() în această funcție se comportă diferit pentru obiectele Dog și Cat, demonstrând polimorfismul.