Einen schönen guten Abend,
ich versuche gerade, OOP zu verstehen, aber irgendwie hakt's schon am Ansatz.
Folgenden Code habe ich geschrieben, um mir das ganze zu verdeutlichen:
########################
<html>
<head>
</head>
<body>
<?php
class Klasse {
var $zahl;
var $ergebnis1;
var $ergebnis2;
function Klasse($zahl = 0) {
$this->zahl = $zahl;
$this->ergebnis1 = $this->zahl - 100;
$this->ergebnis2 = $this->zahl + 100;
}
}
class Abgeleitete_klasse extends Klasse {
var $ergebnis3;
function Abgeleitete_klasse() {
$this->ergebnis3 = $this->ergebnis1 + $this->ergebnis2;
}
}
$test = new Klasse(1000);
$test_abgeleitet = new Abgeleitete_klasse(1000);
echo("
<h1>Klasse</h1>
<pre>
Zahl = $test->zahl // ergibt 1000
Ergebnis 1 = $test->ergebnis1 // ergibt 900
Ergebnis 2 = $test->ergebnis2 // ergibt 1100
</pre>
<h1>Abgeleitete_klasse</h1>
<pre>
Zahl = $test_abgeleitet->zahl // ergibt nichts
Ergebnis 1 = $test_abgeleitet->ergebnis1 // ergibt nichts
Ergebnis 2 = $test_abgeleitet->ergebnis2 // ergibt nichts
Ergebnis 3 = $test_abgeleitet->ergebnis3 // ergibt 0, logisch
</pre>
");
?>
</body>
</html>
################
Wenn nun die 'Abgeleitete_klasse' die Eigenschaften und Methoden von 'Klasse' erbt, sollten dem Konstruktor von 'Abgeleitete_klasse' doch auch '$zahl', '$ergebnis1' und '$ergebnis2' bekannt sein. Sind se aber nicht, und ich begreife einfach nicht, warum.
Habe ich was übersehen? Habe ich was total falsch verstanden? Habe ich was im Forum überlesen?
Hilflose Grüße von TomC