Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Polimorfizm - wytłumaczenie
Proxxx
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 9.10.2011

Ostrzeżenie: (0%)
-----


Witam,

Otóż czytam poradniki, przeglądam książki i nie mogę znaleźć dobrego wytłumaczenia idei i działania polimorfizmu. Czy może ktoś podrzucić jak najprostszy przykład i go opisać? Czym polimorfizm różni się od dziedziczenia czy implementowania interfejsu po prostu?

I czy ten kod: http://wklejto.pl/106402 , wykorzystuje polimorfizm?

Pozdrawiam,
Łukasz
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kaem
post
Post #2





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


Kolego, ważna rzecz: kwadrat jest prostokątem, a nie odwrotnie. czyli powinno być:
  1. class Kwadrat extends Prostokat implements Figury
, a wa konstruktorze kwadratu przekazujemy tylko jeden argument (przecież boki ma takie same).

A po za tym chyba ok, chociaż jakoś specjalnie się nie zagłębiałem w kod.
Po za tym przykład użycia tych klas może wyglądąć tak: (pisane z palca):
np masz jakąś klasę, która w argmencie przyjmuje obiekt klasy Figury
  1. class Przyklad
  2. {
  3. public function __construct(Figury $figuryObj){}
  4. }

i możesz robić coś takiego:
  1. $instance = new Przykład($kwadratObj albo $prostokatObj albo $koloObj itd...);

To jest wlasnie polimorfizm; jeśli w konstruktorze klasy Przykład wywołasz jakąś metodę obiektu figuryObj, to php rozpozna którą metodę ma wywołąć (czyt. metodę której podklasy implementującej interfejs Figury wywołać).
W Twoim przykładzie Figury to interfejs, ale równie dobrze może to być zwykła klasa. Interfejsu i polimorfizmu w zrozumieniu tych pojęć nie należy łączyć.

Ten post edytował kaem 9.10.2011, 19:16:22
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 05:29