PHP Class, Interface, Inheritance -
i trying understand inheritance in php. have 2 classes shopproduct , cdproduct. shopproduct class have 1 method getname. cdproduct class inherit (extends) shopproduct class , have method dowork. in index.php file create 1 cdproduct object , pass method takes 1 parameter function work(shopproduct $item){...}. now, can understand can call getname method using $item parameter, , know can call dowork method using $item, can't understand how possible... hope clear... :-)
it's possible because object passed parameter happens contain dowork method. it's risky calling sort of methods (belonging inheriting class) without type-checking.
why let give cdproduct parameter when mentioned 1 shopproduct? class derived shopproduct contain attributes , methods, not affecting functionality in method body.
what can achieved through having work method can receive parameter type derived shopproduct(cdproduct, bookproduct, candyproduct) without needing separate function each type [workcd(cdproduct $item) or workbook(bookproduct $item)] same thing.
if need access derived-type specific methods , attributes can switch on object class name:
switch(get_class($item)) { case "cdproduct": //cdproduct object specific code here break; case "bookproduct": //bookproduct object specific here break; //and , forth... }
Comments
Post a Comment