![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Mam klasę EventDispatcher, w której znajduje się metoda addListener:
I inną klasę, która ma podobne zadanie, tylko zmienia się ciało funkcji addListener oraz notify (zmienia się cało, nie jej parametry (nie wklejam jej tutaj, bo nie o to chodzi), dlatego potrzebuję klasy dziedziczącej po EventDispacher):
No i dwa interfejsy:
Problem zaczyna się gdy odpalam skrypt. Wyrzuca mi info, że "Strict standards: Declaration of PluginEventDispatcher::addListener() should be compatible with that of EventDispatcher::addListener()". Wiem, że chodzi o metodę addListener i jej drugi parametr (inne nazwy interfejsów), ale myślałem, że gdy przesłania się metodę, to ta przesłaniana jest całkowicie nadpisywana przez przesłoniętą (a raczej na odwrót), a nie, że muszą być kompatybilne. Jak rozwiązać problem typowiania innych interfejsów? EDIT: Już zamiast interfejsów próbowałem użyć klasy EventListener oraz PluginEventListener i dziedziczenia tych klas, ale niestety wyskakuje ten sam błąd. Można to jakoś inaczej rozwiązać? Ten post edytował adbacz 20.08.2014, 16:06:45 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Interfejs PluginEventListener powinien dziedziczyć po EventListener.
2. Nie pozostaje Ci chyba nic innego jak ręczne sprawdzanie przez instanceof czy przekazano odpowiedni parametr. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Interfejsy mogą po sobie dziedziczyć? Od kiedy?
Poza tym, nie uważasz, że gdyby dziedziczenie miało pomóc, to pomogło by po zmianie interfejsów na klasy? EDIT: Zwracam honor, faktycznie można dziedziczyć. Nie wiedziałem o tym. Zaraz to sprawdzę... Ten post edytował adbacz 21.08.2014, 07:58:41 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Interfejsy mogą po sobie dziedziczyć? Od kiedy? http://pl1.php.net/manual/en/language.oop5.interfaces.php
Powód edycji: [nospor]:
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Niestety, dziedziczenie interfejsów niewiele tu pomogło - nadal ten sam błąd jest.
No zostaje mi faktycznie, sprawdzenie ręcznie przez instanceof, ale czy można ten roblem rozwiązać w jakiś inny sposób? Czy ma może ktos jakiś pomysł? Płacę jak za prezydenta! |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 09:21 |