Also, das ist die letzte erbitterte Erbschaftsfrage, die ich für ein kleines bisschen gehabt habe, also wollte ich vorausgehen und fragen. So werde ich ein Beispiel in PHP geben:Vererbung unter der Haube
<?php
class Base
{
private $z = 4;
function GetPrivate()
{
echo $this->z;
}
}
class Derived extends Base
{
}
$b = new Base();
$d = new Derived();
$d->GetPrivate();
>
Einfach genug. Wenn ich immer über Vererbung gelesen habe, war die Erklärung einfach nur "Sie erben die öffentlichen und geschützten Mitglieder" und das war's. Was ich nicht verstehe, sind ein paar Dinge darüber, wie der Dolmetscher in diesem Beispiel abbildet, was zu was gehört.
Zum Beispiel, wenn ich eine abgeleitete Klasse erstellen, kann ich die öffentliche Funktion "GetPrivate" der Base die privaten Variablen der Basisklasse erhalten. Die einfache Definition der Vererbung funktioniert mir damit jedoch nicht. Was ich meine ist, ich erhalte die GetPrivate-Methode, aber habe immer noch irgendeine Art von Link zu privaten Variablen nur von der Methode, die der Basisklasse gehörte (obwohl $ dies auf das abgeleitete Klassenobjekt bezieht). Ich konnte keine neue Funktion in der Abgeleiteten Klasse erstellen, um auf diese privaten Variablen zuzugreifen.
Behält der Interpreter also die geerbten Funktionen der Basisklasse und die möglichen Links zu privaten Mitgliedern im Auge, die nur für diese Basisklasse verfügbar sind?