Sobes.tech
Junior

V čom spočíva zmysel polymorfizmu v programovaní?

sobes.tech AI

Odpoveď od AI

Polymorfizmus umožňuje používanie objektov rôznych tried, ktoré majú spoločné rozhranie, prostredníctvom spoločného "typu" (napríklad základnej triedy alebo rozhrania).

Jeho hlavný účel:

  • Zjednotenie práce s objektmi: Umožňuje písanie kódu, ktorý nezávisí od konkrétneho typu objektu, ale s ním pracuje prostredníctvom abstrakcie.
  • Flexibilita: Je ľahké pridávať nové triedy, ktoré implementujú rovnaké rozhranie, bez zmeny existujúceho kódu, ktorý toto rozhranie využíva.
  • Čitateľnosť a udržiavateľnosť: Kód sa stáva štruktúrovanejší a zrozumiteľnejší, pretože zložitosť konkrétnej implementácie je skrytá za jednotným rozhraním.

Princíp spočíva v tom, že rovnaká metóda, volaná na rôznych objektoch, sa správa odlišne v závislosti od ich konkrétneho typu.

Prí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); // Vypíše "Woof!"
hearAnimalSound($cat); // Vypíše "Meow!"

?>

V tomto príklade funkcia hearAnimalSound akceptuje akýkoľvek objekt, ktorý implementuje rozhranie Animal. Volanie metódy makeSound() v tejto funkcii sa správa odlišne pre objekty Dog a Cat, čím demonštruje polymorfizmus.