Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: kłopot z interfejsem
Forum PHP.pl > Forum > PHP > Object-oriented programming
gamon
Witam, mam problem , jestem w trakcie przerabiania ksiazki php5 zaawansowane programowanie, zaloze sie ze wiele osob z forum przerabialo ta ksiazke, mianowicie chodzi o to:
Kod
interface Observer{
    public function update();
}

abstract class Widget implements  Observer {
    
    protected $internalData=array();
    abstract public function draw();
    
    public function update(Observable $subject){
        $this->internalData=$subject->getData();
    }
}



to jest kawałek aplikacji z w/w ksiazki, i uruchamiajac testowa aplikacje sprawdzajaca czy obiekty dzialaja wywala nastepujacy blad

Fatal error: Declaration of Widget::update() must be compatible with that of Observer::update() in D:\Program Files\xampp\htdocs\php5\widget\abstract_widget.php on line 7

w czym tkwi błąd? przecież interfejsy mają na celu określać tylko 'gołe' metody, bez sposobu implementacji itd, zreszta przykład przepisałem z książki, zeby zobaczyc jak to działa

gdy zmienie interfejs na

Kod
interface Observer{
    public function update(Observable $subject);
}


to kod działa i pokazuje mi tabele z najnowszymi cenami instrumetow, pozdrawiam
nospor
interfejs definiuje metode jak rowniez parametry do niej przekazywane, a u ciebie to sie rozni

Cytat
zreszta przykład przepisałem z książki

ksiazki maja to do siebie, ze są w nich byki
gamon
dzięki, dokladnie o to mi chodzilo, bo nie bylem pewny , z tego co czytalem interfejsy definiuja metody, bez ciała ani parametrow, widocznie zle czytalem, pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.