Dziedziczenie a polimorfizm statyczny
Założenie: Pokażemy, jak wykorzystać polimorfizm statyczny (przeciążanie metod) w PHP, aby zdefiniować wiele metod o tej samej nazwie, ale z różnymi parametrami. Jako przykład posłuży nam metoda “dodaj()” przyjmująca różne typy argumentów.
Krok po kroku:
- Definicja klasy bazowej: Tworzymy klasę bazową z metodą `dodaj()`, która przyjmuje dwa argumenty liczbowe.
- Rozszerzenie klasy bazowej: Tworzymy klasę pochodną, która rozszerza funkcjonalność klasy `Kalkulator`, dodając nową metodę `dodaj()` przyjmującą argumenty typu string.
- Użycie obu metod: Tworzymy obiekty obu klas i wywołujemy metodę `dodaj()` z różnymi argumentami.
- Wyjaśnienie: PHP, w przeciwieństwie do niektórych innych języków, nie obsługuje prawdziwego przeciążania metod (polimorfizmu statycznego) w sensie wyboru metody w czasie kompilacji na podstawie typu argumentów. W tym przykładzie, klasa pochodna *ukrywa* metodę z klasy bazowej. Wybór, która metoda zostanie wywołana, zależy od typu obiektu, a nie od typu argumentów.
dodaj(5, 3); // Wynik: 8
echo "
";
echo $rozszerzonyKalkulator->dodaj("Ala", "ma kota"); // Wynik: Ala ma kota
?>
Ten przykład pokazuje podstawy polimorfizmu statycznego w PHP. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z różnymi typami danych i metodami.