Por lo tanto, esta es la última pregunta persistente sobre la herencia que he tenido durante un tiempo, así que quería seguir adelante y preguntar. Así que voy a dar un ejemplo en PHP:?Herencia bajo el capó
<?php
class Base
{
private $z = 4;
function GetPrivate()
{
echo $this->z;
}
}
class Derived extends Base
{
}
$b = new Base();
$d = new Derived();
$d->GetPrivate();
>
lo suficientemente simple. Cuando siempre leí acerca de la herencia, la explicación fue simplemente "heredas a los miembros públicos y protegidos" y eso es todo. Lo que no entiendo es un par de cosas sobre cómo el intérprete en este ejemplo calcula qué pertenece a qué.
Por ejemplo, cuando creo una clase derivada, puedo usar la función pública "GetPrivate" de la Base para obtener las variables privadas de la clase base. Sin embargo, la definición simple de herencia no funciona con esto para mí. Lo que quiero decir es que heredo el método GetPrivate pero todavía tengo algún tipo de enlace a variables privadas solo desde ese método que pertenecía a la clase base (aunque $ this se refiere al objeto de clase derivado). No pude crear una nueva función en la clase Derivada para acceder a esas variables privadas.
Por lo tanto, ¿el intérprete controla las funciones heredadas de la clase base y los posibles vínculos que mantienen a los miembros privados solo disponibles para esa clase base?