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)

Bookmark setzen... These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Bloglines
  • MisterWong
  • MySpace
  • Reddit
  • SEOigg
  • Technorati
  • TwitThis
  • Y!GG
  • Google Bookmarks

Weiterführende Links: