Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Parametr w metodzie klasy abstrakcyjnej
finito
post
Post #1





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 16.12.2012

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


  1. abstract class A{
  2. abstract public function method();
  3. }
  4.  
  5. class B extends A{
  6. public function method($b = false){}//dozwolone
  7. }
  8.  
  9. class C extends A{
  10. public function method($b){}//niedozwolone!
  11. }


Piszą na wortalu, że deklaracja abstrakcyjnej metody musi mieć takie same parametry co definicja tej metody.

Ale w tym przykładzie:
  1. abstract class A{
  2. abstract public function method();
  3. }

Metoda method nie ma żadnych parametrów.
Dlaczego więc to:
  1. class B extends A{
  2. public function method($b = false){}//dozwolone
  3. }

Jest prawidłowe? Przecież czy true czy false, parametr występuje.
Go to the top of the page
+Quote Post
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


1. PHP jest trochę głupie, bo żaden wariant poza metod() nie powinien być dozwolony w tym przypadku.
2. Zapewne jest to dozwolone ponieważ w obu przypadkach możesz wywołać method() - nie musisz niczego przekazywać.
3. Nie powinieneś nigdy z czegoś takiego korzystać, nawet jeżeli języka na to pozwala.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 01:51