Finalne klasy i metody (final)
Założenie: Zrozumieć i zastosować modyfikator final dla klas i metod w PHP, aby zapobiec dziedziczeniu i nadpisywaniu.
Krok po kroku:
- Definicja klasy bez modyfikatora
final:class Samochod { public function zatrzymaj() { echo "Samochód się zatrzymuje.
"; } }Tworzymy klasę
Samochodz metodązatrzymaj(). - Dziedziczenie klasy
Samochod:class SportowySamochod extends Samochod { public function zatrzymaj() { echo "Sportowy samochód się zatrzymuje gwałtownie!
"; } }Klasa
SportowySamochoddziedziczy poSamochodi nadpisuje metodęzatrzymaj(). - Definicja finalnej klasy:
final class FinalnySamochod { public function zatrzymaj() { echo "Finalny samochód się zatrzymuje.
"; } }Tworzymy klasę
FinalnySamochodz modyfikatoremfinal, uniemożliwiając jej dziedziczenie. - Próba dziedziczenia finalnej klasy (błąd):
// Błąd! Nie można dziedziczyć po finalnej klasie. class Blad extends FinalnySamochod {}Próba dziedziczenia po
FinalnySamochodspowoduje błąd. - Definicja finalnej metody:
class Samochod2 { final public function zatrzymaj() { echo "Samochód się zatrzymuje.
"; } } class SportowySamochod2 extends Samochod2 { // Błąd! Nie można nadpisać finalnej metody. public function zatrzymaj() { echo "Sportowy samochód się zatrzymuje gwałtownie!
"; } }Tworzymy klasę
Samochod2z finalną metodązatrzymaj(). Próba nadpisania tej metody w klasie pochodnej spowoduje błąd.
Pamiętaj, że użycie final pozwala na kontrolowanie dziedziczenia i zapobieganie niezamierzonym zmianom w kodzie.
Ten przykład pokazuje podstawowe zastosowanie modyfikatora final. Zachęcamy do dalszego zgłębiania tematu programowania obiektowego w PHP!