Autor Zpráva
Wool
Profil *
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
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
Wool
Odvozena trida sama prepise starou funkci.
Wool
Profil *
*červená se*
ajo. děkuju X)
Majkl578
Profil
dale je mozne zakazat prepsani jiz definovane metody v rodici pridanim slova "final" pred viditelnost metody

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: