Interfejsy a polimorfizm dynamiczny
Założenie: Pokażemy, jak wykorzystać interfejsy w PHP do osiągnięcia polimorfizmu dynamicznego, czyli możliwości używania obiektów różnych klas w sposób jednolity, o ile implementują one ten sam interfejs.
Krok po kroku:
- Definicja interfejsu: Zdefiniujmy interfejs
Drawable
, który określa metodędraw()
. Ta metoda będzie odpowiedzialna za rysowanie obiektu.interface Drawable { public function draw(): string; }
- Implementacja interfejsu w klasach: Stwórzmy dwie klasy:
Circle
iSquare
, które implementują interfejsDrawable
. Każda klasa będzie implementować metodędraw()
na swój sposób.class Circle implements Drawable { public function draw(): string { return "Rysuję koło."; } } class Square implements Drawable { public function draw(): string { return "Rysuję kwadrat."; } }
- Użycie obiektów przez zmienną interfejsu: Zadeklarujmy zmienną typu
Drawable
i przypiszmy do niej obiekty klasCircle
iSquare
. Wywołanie metodydraw()
będzie działać poprawnie dla obu obiektów.$drawable1 = new Circle(); $drawable2 = new Square(); echo $drawable1->draw() . "
"; // Wyświetli: Rysuję koło. echo $drawable2->draw(); // Wyświetli: Rysuję kwadrat.
Ten przykład pokazuje podstawy wykorzystania interfejsów w PHP do osiągnięcia polimorfizmu dynamicznego. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z różnymi implementacjami!