abstract class A{ abstract public function method(); } class B extends A{ public function method($b = false){}//dozwolone } class C extends A{ public function method($b){}//niedozwolone! }
Piszą na wortalu, że deklaracja abstrakcyjnej metody musi mieć takie same parametry co definicja tej metody.
Ale w tym przykładzie:
abstract class A{ abstract public function method(); }
Metoda method nie ma żadnych parametrów.
Dlaczego więc to:
class B extends A{ public function method($b = false){}//dozwolone }
Jest prawidłowe? Przecież czy true czy false, parametr występuje.