Will mal hier nen thread starten, bei dem es einfach nur darum geht darüber zu Diskutieren,
ob man was richtig verstanden hat, oder halt nicht.
Gerade bei OOP in Sachen Vererbung kann man schnell mal den Überblick verlieren.
Hier mal interessant, dass Konstanten (auch Funktionen und Eigenschaften) geerbt werden können,
aber dennoch jede Klasse seine eigene Variante mit dem exakt gleichen Namen haben kann:
PHP
class Mensch
{
const ANZAHL_AUGEN = 2;
public function gibAnzahlAugen()
{
echo 'Mensch hat '.self::ANZAHL_AUGEN.' Auge(n)<br>'; // 2
}
}
class Mann extends Mensch
{
const ANZAHL_AUGEN = 2;
public function gibAnzahlAugen()
{
echo 'Mann hat '.self::ANZAHL_AUGEN.' Auge(n)<br>'; // 2
echo 'sowie ein Mensch '.parent::ANZAHL_AUGEN.' Auge(n) hat<br>'; // 2
}
}
class EinAuge extends Mann
{
const ANZAHL_AUGEN = 1;
public function gibAnzahlAugen()
{
echo 'EinAuge hat '.self::ANZAHL_AUGEN.' Auge(n)<br>'; // 1
echo 'aber normalerweise hat ein Mann '.parent::ANZAHL_AUGEN.' Auge(n)<br>'; // 2
echo 'sowie ein Mensch '.Mensch::ANZAHL_AUGEN.' Auge(n) hat<br>'; // 2
}
}
$person = new EinAuge();
$person->gibAnzahlAugen();
Alles anzeigen
Jemand btw ne Idee, wie man aus der dritten Klasse die Konstante der Ersten ansprechen könnte?
Also Ohne den Namen (Mensch::) dabei zu nutzen?