Autor | Zpráva | ||
---|---|---|---|
Wool Profil * |
#1 · Zasláno: 21. 5. 2009, 16:13:02
Rád bych se zeptal, jak se normálně řeší podobný problém.
Mám nějakou třídu, která obsahuje funkci foo() class Nejaka { function foo(){ } } A v běhu programu přijde na to, že vznikne rozšíření funkce, která kromě typicky svých funkcí by i ráda přepsala původní funkce z třídy Nejaka class NejakaJina extends Nejaka { function foo(){ } } Jako řešení mě napadlo v construkci NejakaJina použít třeba (schématicky) class NejakaJina extends Nejaka { function __construct(){ rename_function(foo, old_foo); } ... Ale to mi přijde takové kostrbaté, a rád bych věděl, zda pro to nemáte třeba nějaké elegantnější řešení. Za případné nápady budu velice vděčný |
||
Mastodont Profil |
#2 · Zasláno: 21. 5. 2009, 16:17:57 · Upravil/a: Mastodont
Když budeš v NejakaJina definovat metodu se stejným názvem, tak při jejím volání je foo v původní třídě zcela ignorována.
Pokud bys chtěl k původní metodě jen něco přidat, tak metodu základní třídy zavoláš jako parent::foo() |
||
bohyn Profil |
#3 · Zasláno: 21. 5. 2009, 16:19:02
Wool
Odvozena trida sama prepise starou funkci. |
||
Wool Profil * |
#4 · Zasláno: 21. 5. 2009, 16:21:02
*červená se*
ajo. děkuju X) |
||
Majkl578 Profil |
#5 · Zasláno: 21. 5. 2009, 17:00:53
dale je mozne zakazat prepsani jiz definovane metody v rodici pridanim slova "final" pred viditelnost metody
|
||
Časová prodleva: 15 let
|
0