Donc, ceci est la question de l'héritage lancinante finale que j'ai eu pour un petit moment, donc je voulais aller de l'avant et demander. Je vais donner un exemple en PHP:Héritage sous le capot
<?php
class Base
{
private $z = 4;
function GetPrivate()
{
echo $this->z;
}
}
class Derived extends Base
{
}
$b = new Base();
$d = new Derived();
$d->GetPrivate();
>
assez simple. Quand j'ai toujours lu sur l'héritage, l'explication était simplement "vous héritez du public et des membres protégés" et c'est tout. Ce que je ne comprends pas, c'est un certain nombre de choses sur la façon dont l'interprète dans cet exemple détermine ce qui appartient à quoi. Par exemple, lorsque je crée une classe dérivée, je peux utiliser la fonction publique "GetPrivate" de la base pour obtenir les variables privées de la classe de base. Cependant, la définition simple de l'héritage ne fonctionne pas avec moi. Ce que je veux dire, c'est que j'hérite de la méthode GetPrivate mais j'ai toujours un lien vers des variables privées issues de cette méthode qui appartenait à la classe de base (même si $ this fait référence à l'objet de classe dérivé). Je ne pouvais pas créer une nouvelle fonction dans la classe Derived pour accéder à ces variables privées.
Ainsi, l'interpréteur garde-t-il un œil sur les fonctions héritées de la classe de base et les liens possibles qu'elles contiennent pour les membres privés uniquement disponibles pour cette classe de base?