Sobes.tech
Junior

У чему се састоји смисао полиморфизма у програмирању?

sobes.tech АИ

Одговор од АИ

Polimorfizam omogućava korišćenje objekata različitih klasa koji imaju zajednički interfejs, putem zajedničkog "tipa" (npr. osnovne klase ili interfejsa).

Njegova osnovna svrha:

  • Ujednačavanje rada sa objektima: Omogućava pisanje koda koji ne zavisi od konkretnog tipa objekta, već radi sa njim putem apstrakcije.
  • Fleksibilnost: Lako je dodavati nove klase koje implementiraju isti interfejs, bez promene postojećeg koda koji koristi tu apstrakciju.
  • Čitljivost i održivost: Kod postaje strukturiraniji i razumljiviji, jer složenost konkretne implementacije ostaje skrivena iza jednog interfejsa.

Princip se sastoji u tome da ista metoda, pozvana na različitim objektima, ponaša se različito u zavisnosti od njihovog konkretnog tipa.

Primer u PHP-u:

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