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ę
Samochod
z metodązatrzymaj()
. - Dziedziczenie klasy
Samochod
:class SportowySamochod extends Samochod { public function zatrzymaj() { echo "Sportowy samochód się zatrzymuje gwałtownie!
"; } }Klasa
SportowySamochod
dziedziczy poSamochod
i nadpisuje metodęzatrzymaj()
. - Definicja finalnej klasy:
final class FinalnySamochod { public function zatrzymaj() { echo "Finalny samochód się zatrzymuje.
"; } }Tworzymy klasę
FinalnySamochod
z 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
FinalnySamochod
spowoduje 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ę
Samochod2
z 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!