extends
Oft braucht man Klassen mit in einer anderen Klasse ähnlichen Variablen
und Funktionen. So ist es eine gute Vorgehensweise, eine in allen Ihren
Projekten verwendbare Oberklasse zu definieren, und diese dann den
Bedürfnissen Ihrer einzelnen Projekte anzupassen. Um dies zu erleichtern,
können Klassen andere Klassen erweitern. Die erweiterte bzw. abgeleitete
Klasse verfügt über alle Variablen und Funktionen der Basisklasse (dies
wird 'Vererbung' genannt, obwohl niemand gestorben ist), und was Sie in
der erweiterten Definition hinzufügen. Es ist nicht möglich, etwas von
einer Klasse wegzunehmen, d.h. Sie können keine existierenden Variablen
oder Funktionen 'wegdefinieren'. Eine Unterklasse ist immer von einer
einzigen Oberklasse abhängig, d.h. Mehrfachvererbung wird nicht
unterstützt. Klassen werden mittels dem Schlüsselwort 'extends' erweitert.
Hier wird die Klasse Named_Cart definiert, die über alle Variablen
und Funktionen von Cart, plus der Variable $owner und der Funktion
set_owner() verfügt. Sie können einen bestimmten Einkaufswagen
(Named_Cart) auf dem üblichen Weg erstellen, und nun auch den
Besitzer (owner) bestimmen und erfragen. Sie können noch immer
die normalen Cart Funktionen an Named_Cart anwenden:
Dies wird auch eine "Eltern-Kind" Beziehung genannt. Sie erstellen eine
Klasse ("Eltern"), und erstellen mittels extends eine
neue Klasse, die auf der "Eltern"-Klasse basiert:
die "Kind"-Klasse. Sie können auch diese neue Unterklasse verwenden und
eine neue, auf dieser Klasse basierenden Klasse erstellen.
Anmerkung:
Bevor Sie Klassen verwenden können, müssen Sie diese definieren. Wenn
Sie wollen, dass Named_Cart die Klasse
Cart erweitert, müssen Sie Cart
erst definieren. Wenn Sie eine andere Klasse, z.B.
Yellow_named_cart erstellen wollen, welche
auf Named_Cart basiert, müssen Sie zuerst
Named_Cart definieren. Kurz gesagt ist die
Reihenfolge, in der die Klassen definiert werden, sehr wichtig.
|