Sobes.tech
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.