Witajcie, mam kod:
class Rodzic{ public function iloscDzieci(){ http://www.php.net/echo 'nie mam dzieci'; } } class Dziecko extends Rodzic{ public function iloscDzieci(){ http://www.php.net/echo 'mam jedno dziecko'; } } $test = new Rodzic(); $test->iloscDzieci();
class Rodzic{ public function lata(){ http://www.php.net/echo 40; } } class SynTomek extends Rodzic{ public function lata(){ http://www.php.net/echo 20; } } class SynJuzek extends Rodzic{ public function lata(){ http://www.php.net/echo 15; } }
Nie odwołasz się do klasy dziecka z klasy rodzica bo te o sobie nic nie wiedzą. W drugą stronę się da.
Oczywiście dałoby się ale musiałbyś mieć autoloader np. z PSR4 potem znaleźć wszystkie klasy które extendują rodzica, stworzyć ich instancję i wywołać je.
Co do słownictwa, to słowo `wiek` brzmiałby lepiej niż `lata`. W końcu po wywowałniu Rodzic::lata() oczekiwałbym wyniku: TAK, lata lub NIE, to nielot
W programowaniu obiektowym nie jest celem aby tworzyć nadrzędną klasę której dodajemy dzieci. Spójrz na to z poziomu architekta lub anatoma.
np.
class Ssak { } class Czlowiek extends Ssak {} class Krowa extends Ssak {} $rodzic = new Czlowiek; $rodzic -> imie = 'Stefan'; $rodzic -> wiek = 33; $syn = new Czlowiek; $syn -> imie = 'Janusz'; $syn -> wiek = 6; $zwierzak = new Krowa; $zwierzak -> imie = 'Mućka';
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)