Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Metody abstrakcyjne i ich dziedziczenie
Koldy
post
Post #1





Grupa: Zarejestrowani
Postów: 98
Pomógł: 1
Dołączył: 28.06.2009
Skąd: Great Britan

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


Czesc mam taki problem:
Kod
Fatal error: Declaration of Home::IndexAction() must be compatible with Controller::IndexAction()


Chodzi o to ze mam kontroler Home ktory dziedziczy po klasie Controller ktora jest baza, mam w niej dwie metody abstrakcyjne
  1. abstract public function IndexAction();
  2. abstract public function ErrorAction();


teraz w kontrolerze Home chcialem zrobic
  1. public function IndexAction($arg) {
  2. }


ale mi nie pozwala i dostaje blad, myslalem nad interfejsami ale one dzialaja chyba w ten sam sposob tak?
jakis workaround?
Go to the top of the page
+Quote Post
memory
post
Post #2





Grupa: Zarejestrowani
Postów: 616
Pomógł: 84
Dołączył: 29.11.2006
Skąd: bełchatów

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


  1. abstract public function IndexAction($arg);
Go to the top of the page
+Quote Post
Sephirus
post
Post #3





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Metody abstrakcyjne działają w taki sposób, że określają (podobnie jak interfejsy) deklaracje metody jaką należy stworzyć w klasie pochodnej. Ze względu na to, że jest to rodzaj wymuszenia odpowiedniej deklaracji (nazwa + argumenty) metoda klasy dziedziczącej, która implementuje daną metodę abstrakcyjną musi być identyczna.

Jeżli w klasie bazowej masz zadeklarowaną metodę bez argumentów, oznacza to, że jest to takie wymuszenie by metoda w klasie pochodnej też ich nie przyjmowała. Jeśli korzystasz z gotowych (czyichś) klas musisz się tego trzymać, jeśli piszesz coś sam - musisz na poczatku zastanowić się i dobrze zadeklarować metody abstrakcyjne i trzymać się ich deklaracji w każdej klasie dziedziczącej.
Go to the top of the page
+Quote Post
Koldy
post
Post #4





Grupa: Zarejestrowani
Postów: 98
Pomógł: 1
Dołączył: 28.06.2009
Skąd: Great Britan

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


tego sie obawialem, dzieki i pozdrawiam
Go to the top of the page
+Quote Post

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: 23.08.2025 - 15:54