PHP und OOP – Vererbung von Klassen

PHP - Objektorientierte ProgrammierungPHP und Objektorientierte Programmierung noch etwas komplexer – Vererbung von Klassen

Der letzte Teil beschäftigt sich mit der Vererbung von
Klassen
, und die daraus resultierenden Ergebnisse, und was das
für die erstellten Objekte bedeutet.

Eine Vererbung von einer Klasse bedeutet immer gleich auch die
Vererbung aller Methoden dieser Klasse. Die andere Klasse,
die auf die erste gestützt ist, kann folglich auf alle Methoden
der anderen Klasse zurückgreifen, und diese Ergebnisse abfangen,
und weiterverarbeiten.

Ein Beispiel – Klasse 1:

class benutzer

{

var $beschreibung;

function beschreibung($vorname, $name)
{
$this->beschreibung="Ich heiße $vorname, $name";

return $this->beschreibung;
}
}

Diese Klasse erzeugt einen neuen Benutzer mit einer Beschreibung.
Diese Beschreibung lautet dann, je nach Name:
"Ich heiße Name, Vorname".
Diese Beschreibung wird dann an die Eigenschaft "beschreibung"
zurückgegeben.

Eine zweite Klasse, die sich auf diese Klasse stützt, also
aus einer Vererbung entstanden ist, soll zu dieser Beschreibung
noch die jeweilige Augenfarbe hinzufügen.
Das Ergebnis soll so aussehen:
"Ich heiße Name, Vorname, und habe Farbe Augen."

Die abgeleitete Klasse sieht wie folgt aus:

class augenfarbe extends benutzer
{
var $augenfarbe;

function farbe($farbe)
{
$this->augenfarbe="und habe $farbe Augen";
return $this->augenfarbe;
}

function beschreibung_neu()
{
$this->beschreibung=$this->beschreibung.",".$this->augenfarbe;

return $this->beschreibung;
}

}

Die Vererbung wird durch extends benutzer eingeleitet. Es
wird angegeben, das diese Klasse von der Klasse benutzer abhängt.
Diese Klasse ist schon ein wenig unübersichtlicher.
Eine neue Methode ist dazugekommen, die Methode "farbe($farbe)".
Mit ihr wird der Textteil erstellt, der zu der Beschreibung hinzugefügt
werden soll.
Das wäre also:
"und habe Farbe Augen.".
Die Daten für die Farbe werden beim Aufruf der Methode über
das Objekt übermittelt.
Die zweite Methode erstellt die neue Beschreibung, indem Sie mit
dem Stringoperator "." Die beiden Teile der Beschreibung
zusammenführen.

Die erste Beschreibung muss aber nicht mehr über die Klasse
benutzer definiert werden, sondern Sie wird direkt aus der
Ableitung der Klasse und somit auch aus der Funktion, erstellt.

Ein Objekt, was über diese Klasse erstellt wird, hat also
neben den zusätzlichen Eigenschaften auch die Eigenschaften
der Klasse benutzer.
Ein Objekt wird wie folgt abgeleitet:

$nutzer = new augenfarbe;

$beschreibung= $nutzer->beschreibung("Thiemo",
"Fetzer");
//erste Beschreibung, nicht mehr von der ersten Klasse abhängig

$augenfarbe= $nutzer->farbe("grün-braun");
//zweiter Teil der Beschreibung wird definiert

$beschreibung_neu = $nutzer->beschreibung_neu();
//das Ergebnis der Zusammenführung

echo "$beschreibung_neu";

Alle Eigenschaften und Abfragen richten sich an das Objekt der
Klasse augenfarbe. Diese Klasse besteht ebenfalls aus den Methoden
der Klasse benutzer, welche dann über das Objekt aufgerufen
werden können.

Das Beispiel ist schwer zu durchleuchten, da die Verwendung einer
zweiten Klasse anscheinend keinen Sinn macht. Die Verwendung von
Vererbung zwischen Klassen macht erst bei größeren Programmkomplexen
sinn. Diese Programmkomplexe sind dann auf einer Basisklasse aufgebaut,
die die grundlegenden Methoden enthält. Von dieser Basisklasse
werden alle anderen Klassen abgeleitet.

(tf)

This entry was posted in PHP. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *