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