Czy ktos z Was spotkal sie moze z "problemem" (nie wiem, czy moja taktyka jest dobra, dlatego w cudzyslowiu) dziedziczenia po klasie abstr., ktory polega na tym, iz w momencie nadpisania metody klasa potomna musi uzyc parametrow zadeklarowanych w klasie nadrzednej ?
Dokladnie chodzi mi o:
abstract class Zwierze { protected function nakarm( $zarcie ) { (...) } } class Pies extends Zwierze { public function nakarm( $zarcie, $przystawka ) { //(Zrob cos z przystawka i dopiero nakarm) return parent::nakarm( $zarcieZPrzystawka ); } }
Powyzszy przyklad zwraca Strict'a:
[i]Strict Standards: Declaration of Pies ::nakarm() should be compatible with that of Zwierze [...][/i
Czy to jest zly przyklad uzycia klasy abstrakcyjnej ?
Jesli Zwierze nie byla by abstrakcyjna, to rozwiazuje problem. Moge nadpisywac metody, ale to rozwiazanie jest zle w moim wypadku. To musi byc klasa abstrakcyjna.