Interfejsy a dziedziczenie
Założenie: Pokażemy, jak klasa w PHP może implementować interfejs i jednocześnie dziedziczyć po klasie nadrzędnej.
Krok po kroku:
- Definicja interfejsu: Zdefiniujmy interfejs
MojaFunkcja
z metodąwyswietl
. - Definicja klasy bazowej: Stwórzmy klasę bazową
KlasaBazowa
. - Definicja klasy pochodnej: Utwórzmy klasę
KlasaPochodna
, która dziedziczy poKlasaBazowa
i implementujeMojaFunkcja
. - Użycie klasy: Utwórzmy obiekt klasy
KlasaPochodna
i wywołajmy jej metody.
interface MojaFunkcja {
public function wyswietl();
}
Ten kod definiuje interfejs o nazwie MojaFunkcja
, który deklaruje publiczną metodę wyswietl()
. Klasy implementujące ten interfejs muszą zaimplementować tę metodę.
class KlasaBazowa {
public function pokaz() {
echo "To jest metoda z klasy bazowej.\n";
}
}
Tworzymy klasę KlasaBazowa
z metodą pokaz()
.
class KlasaPochodna extends KlasaBazowa implements MojaFunkcja {
public function wyswietl() {
echo "To jest metoda z interfejsu.\n";
}
}
Klasa KlasaPochodna
dziedziczy po KlasaBazowa
(extends KlasaBazowa
) i implementuje interfejs MojaFunkcja
(implements MojaFunkcja
). Musi ona zaimplementować metodę wyswietl()
zdefiniowaną w interfejsie.
$obiekt = new KlasaPochodna();
$obiekt->pokaz();
$obiekt->wyswietl();
Tworzymy obiekt klasy KlasaPochodna
i wywołujemy metody pokaz()
(odziedziczona z klasy bazowej) oraz wyswietl()
(zaimplementowana z interfejsu).
Ten przykład pokazuje, jak w PHP łączyć dziedziczenie z implementacją interfejsów, co pozwala na tworzenie elastycznych i dobrze zorganizowanych struktur programów.
Zachęcamy do dalszego zgłębiania tematu dziedziczenia i interfejsów w PHP!