Pogledajte određenu poruku
Staro 03. 03. 2013.   #12
jablan
VD IT Direktora
Invented the damn thing
 
Avatar jablan
 
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
jablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamen
Default

Citat:
Originalno napisao japan Pogledajte poruku
Jedno pet puta već čitam pokušavajući da shvatim tvoj argument, ali mi ne uspeva. Daj, molim te, objasni mi šta hoćeš da kažeš...
Hoću da mi neko objasni čemu služe apstraktne klase u dinamičkom jeziku kao što je PHP.

Primer:

Ti u PHP-u možeš da uradiš sledeće:

Kôd:
class Duck{
        function quack(){ echo "Quack\n";}
        function fly(){ echo "Flap, Flap\n";}
}
class Person{
        function __construct($name){$this->name=$name;}
        function quack(){echo "{$this->name} walks in the forest and imitates ducks to draw them\n";}
        function fly(){ echo "{$this->name} takes an airplane\n";}
}
 
function QuackAndFly($obj){$obj->quack(); $obj->fly();}
 
QuackAndFly(new Duck());
QuackAndFly(new Person("Jules Verne"));
Tj. ne postoji kompajler koji će da kaže koju klasu funkcija QuackAndFly mora da primi kao argument (isto važi i za npr. dodelu promenljivih, jedna ista promenljiva u jednom trenutku može držati instancu Duck, a u drugom instancu klase Person itd). Samim tim ne postoji obaveza programera da pravi klase u kojima kaže "e sad ovde će biti jedna metoda, ali neću sad da je implementiram, već će to morati da urade potklase", da bi zadovoljio kompajler, kao što postoji u statičkim jezicima tipa Jave. U Javi bi za gornji primer morao da napraviš parent apstraktnu klasu QuackableFlyableItem, koju bi onda Duck i Person nasleđivale, pa onda da kažeš da funkcija QuackAndFly prima argument tipa QuackableFlyableItem itd itd.

Dakle, interesuje me zašto je u PHP dodat feature koji je u statičkim jezicima tu samo kao nužno zlo, upravo zato što su statički?

Nadam se da sam jasniji.
__________________
blog

Poslednja izmena od jablan : 03. 03. 2013. u 18:52.
jablan je offline   Odgovorite uz citat