Tecnicamente questo non è possibile dal "fuori" (l'interfaccia pubblica) per una buona ragione.
Se avete capito perché (altrimenti leggere qui di seguito), e in realtà sa quello che fai, non v'è alcun motivo per in realtà non offrono la funzionalità:
class User extends BaseUser {
...
function parentDelete(){
parent::delete();
}
...
}
user = new User();
$user->delete(); // will call the overridden delete
$user->parentDelete(); // want to call parent delete
Tuttavia se mai fare questo, si dovrebbe sappi che hai in qualche modo abusato dell'eredità. Questa deve essere una situazione eccezionale, dal momento che non riesco a immaginare nessuna situazione in cui sia effettivamente necessario.
Quindi prova a formulare il motivo per cui hai bisogno di quella funzionalità in modo da darti suggerimenti migliori.
Why is that bad?
Per un motivo molto semplice: Nel software non è necessario sapere che $user
ha un genitore o no. Questo è un dettaglio di cui non dovresti preoccuparti.
Ciò consente di sostituire qualsiasi oggetto utente presente nel software con un childobject dell'utente in seguito. Questo è importante in quanto si desidera modificare il software nel tempo.
Se si rende la parte dei dettagli interni dell'interfaccia pubblica si sta rubando la possibilità di mantenere le cose flessibili. Non essere flessibili è davvero una brutta situazione.
Hai provato '$ user-> parent :: delete();'? – Matt
sì, l'ho provato ma non ha funzionato .... netbeans lo mostra come semantica sbagliata –
E quando si esegue il codice nel browser? – Matt