Hallo,
mir ist gerade folgendes Verhalten aufgefallen, das ich nicht verstehe.
Als Beispiel habe ich habe eine Klasse Flugzeug
und eine Klasse Kleinflugzeug
Ich erstelle mir nun ein Objekt vom Typ Kleinflugzeug und rufe die private Klassenvariable $plaetze der Klasse Flugzeug auf,
erhalte ich folgende Ausgabe:
Ich verstehe hier nicht, weshalb ich von der Kindklasse aus, der privaten Klassenvariable der Elternklasse einen Wert zuweisen kann und anschließend über ein Objekt der Kindklasse auf diese zugreifen kann.
Ändere ich den Konstruktor der Kindklasse wie folgt
erhalte ich die Ausgabe, die ich auch vorher erwartet habe
Ich verstehe dieses Verhalten überhaupt nicht. Wenn ich im Konstruktor der Kindklasse einer privaten Klassenvariable der Elternklasse einen Wert zuweise, kann ich anschließend über ein Objekt der Kindklasse auf diese private Klassenvariable zuweisen, weise ich der privaten Klassenvariable der Elternklasse keinen Wert zu, ist sie dem Objekt der Kindklasse unbekannt. Aber wieso kann ich im Konstruktor der Kindklasse einer privaten Klassenvariablen der Elternklasse überhaupt einen Wert zuweisen?
Schöne Grüße
schiese
mir ist gerade folgendes Verhalten aufgefallen, das ich nicht verstehe.
Als Beispiel habe ich habe eine Klasse Flugzeug
PHP:
class Flugzeug {
private $plaetze;
function __construct() {
$this->plaetze = 5;
}
}
PHP:
class Kleinflugzeug extends Flugzeug {
function __construct() {
$this->plaetze = 5;
}
}
Ich erstelle mir nun ein Objekt vom Typ Kleinflugzeug und rufe die private Klassenvariable $plaetze der Klasse Flugzeug auf,
PHP:
$kleinflugzeug = new Kleinflugzeug();
echo "Anzahl Plätze im Kleinflugzeug: " . $kleinflugzeug->plaetze;
Code:
Anzahl Plätze im Kleinflugzeug: 5
Ich verstehe hier nicht, weshalb ich von der Kindklasse aus, der privaten Klassenvariable der Elternklasse einen Wert zuweisen kann und anschließend über ein Objekt der Kindklasse auf diese zugreifen kann.
Ändere ich den Konstruktor der Kindklasse wie folgt
PHP:
function __construct() {
}
Code:
Notice: Undefined property: Kleinflugzeug::$plaetze in C:\xampp\htdocs\xampp\CleanCode\testflugzeug.php on line 41
Anzahl Plätze im Kleinflugzeug:
Ich verstehe dieses Verhalten überhaupt nicht. Wenn ich im Konstruktor der Kindklasse einer privaten Klassenvariable der Elternklasse einen Wert zuweise, kann ich anschließend über ein Objekt der Kindklasse auf diese private Klassenvariable zuweisen, weise ich der privaten Klassenvariable der Elternklasse keinen Wert zu, ist sie dem Objekt der Kindklasse unbekannt. Aber wieso kann ich im Konstruktor der Kindklasse einer privaten Klassenvariablen der Elternklasse überhaupt einen Wert zuweisen?
Schöne Grüße
schiese