extends
Bardzo
często
zachodzi
potrzeba
stworzenia
klasy
o
funkcjach
i
zmiennych
podobnych
do
już
istniejącej
klasy
.
Zasadniczo
dobrze
jest
stworzyć
szablonową
klasę
,
która
może
być
użyta
we
wszystkich
twoich
projektach
i
przystosowywać
ją
do
specyficznych
potrzeb
twojego
projektu
.
Aby
ułatwić
ten
proces
,
klasy
mogą
być
rozszerzeniami
innych
klas
.
Rozszerzone
,
lub
mówiąc
inaczej
'
dziedziczone'
,
klasy
mają
wszystkie
zmienne
i
funkcje
klasy
podstawowej
(nazywa
się
to
dziedziczeniem
,
mimo
że
nikt
nie
umarł
)
oraz
to
co
do
niej
dodałeś
w
definicji
rozszerzenia
.
Nie
można
odjąć
pewnych
rzeczy
z
klasy
podstawowej
,
czyli
oddefiniować
istniejących
w
klasie
podstawowej
funkcji
i
zmiennych
.
Rozszerzona
klasa
jest
zawsze
zależna
od
jednej
klasy
bazowej
-
dziedziczenie
wielokrotne
nie
jest
obsługiwane
.
Klasy
można
rozszerzyć
używając
słowa
kluczowego
'
extends
'
.
Definiuje
to
klasę
Nazwany_Koszyk
,
który
ma
wszystkie
zmienne
i
funkcje
klasy
Koszyk
plus
dodatkowa
zmienna
$wlasciciel
i
dodatkowa
funkcja
ustaw_wlasciciela(
)
.
Nazwany
koszyk
tworzy
się
normalnym
sposobem
.
Możesz
teraz
ustawiać
i
pobierać
nazwę
właściciela
koszyka
.
Cały
czas
możesz
używać
zwykłych
funkcji
koszyka
dla
nazwanego
koszyka
:
Taka
relacja
nazywana
jest
często
relacją
"
rodzic-potomek
"
.
Tworzysz
klasę
-
rodzica
-
i
używasz
extends
aby
stworzyć
klasę
opartą
o
klasę
rodzica
:
klasę
potomną
.
Możesz
także
tworzyć
nowe
klasy
potomne
oparte
o
tą
klasę
potomną
.
Notatka
:
Klasy
musza
być
zdefiniowane
zanim
zostaną
użyte
!
Jeśli
chcesz
,
aby
klasa
Nazwany_Koszyk
rozszerzała
klasę
Koszyk
,
musisz
zdefiniować
klasę
Koszyk
jako
pierwszą
.
Jeśli
chcesz
stworzyć
kolejną
klasę
nazwaną
Niebieski_Nazwany_Koszyk
opartą
o
klasę
Nazwany_Koszyk
,
musisz
najpierw
zdefiniować
klasę
Nazwany_Koszyk
.
W
skrócie
:
kolejność
,
w
jakiej
klasy
są
definiowane
,
jest
bardzo
ważna
.