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
MojaFunkcjaz metodąwyswietl. - Definicja klasy bazowej: Stwórzmy klasę bazową
KlasaBazowa. - Definicja klasy pochodnej: Utwórzmy klasę
KlasaPochodna, która dziedziczy poKlasaBazowai implementujeMojaFunkcja. - Użycie klasy: Utwórzmy obiekt klasy
KlasaPochodnai 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!