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
.