Junior
Na czym polega sens polimorfizmu w programowaniu?
sobes.tech AI
Odpowiedź od AI
Polimorfizm pozwala na używanie obiektów różnych klas, które mają wspólny interfejs, poprzez wspólny "typ" (np. bazową klasę lub interfejs).
Jego główny sens:
- Ujednolicenie pracy z obiektami: Pozwala pisać kod, który nie zależy od konkretnego typu obiektu, lecz działa z nim przez abstrakcję.
- Elastyczność: Łatwo dodawać nowe klasy implementujące ten sam interfejs, bez zmiany istniejącego kodu korzystającego z tej abstrakcji.
- Czytelność i utrzymanie: Kod staje się bardziej uporządkowany i zrozumiały, ponieważ ukrywa złożoność konkretnej implementacji za jednym interfejsem.
Zasada polega na tym, że ta sama metoda, wywoływana na różnych obiektach, zachowuje się inaczej, w zależności od ich konkretnego typu.
Przykład w 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); // Wypisze "Woof!"
hearAnimalSound($cat); // Wypisze "Meow!"
?>
W tym przykładzie funkcja hearAnimalSound przyjmuje dowolny obiekt, który implementuje interfejs Animal. Wywołanie metody makeSound() w tej funkcji zachowuje się różnie dla obiektów Dog i Cat, demonstrując polimorfizm.