Nella classe derivata
codice:
function tree($id = 0 , $name = '' , $level = 0)
{
    parent::tree();
}
dovrebbe essere piuttosto
codice:
parent::tree($id, $name, $level);
Però hai veramente bisogno di ridefinire il metodo, visto che l'unica cosa che fai nella classe figlia è richiamare il metodo della classe padre?
Se sarà cosi per ogni classe derivata, non ti conviene ogni volta ridichiarare tree()