Técnicamente, esto no es posible desde el "exterior" (la interfaz pública) por una buena razón.
Si ha entendido por qué (leer otra cosa más adelante), y que en realidad saber lo que haces, no hay ninguna razón para realmente no ofrecen la funcionalidad:
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
Sin embargo, si alguna vez hecho esto, usted debe sepa que ha usado mal la herencia de alguna manera. Esta debe ser una situación excepcional ya que no puedo imaginar ninguna situación en la que realmente necesite eso para hacerlo.
Por lo tanto, intente formular por qué necesita esa funcionalidad para obtener mejores sugerencias.
Why is that bad?
Por una razón muy simple: en su software que no es necesario saber que $user
tiene un padre o no. Ese es un detalle que no debería importarle en absoluto.
Eso le permitirá reemplazar cualquier objeto de usuario que tenga en su software con un proyecto de usuario posterior. Esto es importante ya que desea cambiar su software a lo largo del tiempo.
Si haces que los detalles internos formen parte de la interfaz pública, te estás robando a ti mismo la posibilidad de mantener las cosas flexibles. No ser flexible es realmente una mala situación.
¿Has probado '$ user-> parent :: delete();'? – Matt
sí, lo intenté pero no funcionó ... netbeans lo muestra como una semántica incorrecta –
¿Qué pasa cuando ejecuta el código en su navegador? – Matt