132 PHP i MySQL dla każdego
class X
//wnętrze klasy X
class Y extends X
//wnętrze klasy Y
class Z extends X
//wnętrze klasy Z
)
Nie jest dopuszczalna sytuacja, w której jedna klasa dziedziczyłaby z więcej niż jednej klasy. Inaczej mówiąc zabronione jest, znane np. z C++, wielodziedziczenie.
Kiedy wykorzystujemy dziedziczenie klas, prędzej czy później napotkamy problem przesłaniania składowych. Chodzi o sytuację, w której w obu klasach biorących udział w dziedziczeniu występują składowe o takich samych nazwach. Jak należy interpretować taką sytuację? Otóż zawsze klasa dziedzicząca przesłania składowe klasy dziedziczonej. Innymi słowy jeśli klasa B dziedziczy z klasy A i mają składowe o takich samych nazwach, to w klasie B będą widoczne tylko jej składowe. Spójrzmy na listing 4.24, który prezentuje taką właśnie sytuację.
Listing 4.24. Ilustracja przesłaniania składowych_
<?php class A {
var Spolel; function showO {
echo("Funkcja show klasy A... <br>"):
}
class B extends A
var Spolel: function showO {
echoOFunkcja show klasy B... <br>"):
}
SobjA = new A:
$objA->polel = 100;
$objA->show():
SobjB = new B:
$objB->polel - 100:
$objB->showO: