Metody finalne a dziedziczenie
Założenie: Zrozumieć, jak działa modyfikator final w kontekście metod i dziedziczenia w PHP oraz zapobiec niezamierzonemu nadpisywaniu metod.
Krok po kroku:
- Tworzenie klasy bazowej: Zdefiniujmy klasę bazową
Animalz metodąmakeSound(). - Tworzenie klasy pochodnej bez modyfikatora
final: Utwórzmy klasę pochodnąDogdziedziczącą poAnimali nadpisującą metodęmakeSound(). - Tworzenie klasy pochodnej z metodą
final: Zdefiniujmy klasę bazowąCatz metodąmakeSound()oznaczoną jakofinal. - Wywołanie metod: Stwórzmy obiekty klas i wywołajmy metodę
makeSound().
Ten kod definiuje klasę Animal z publiczną metodą makeSound(), która wypisuje komunikat “Generic animal sound”.
Klasa Dog dziedziczy po Animal i nadpisuje metodę makeSound(), aby wypisać “Woof!”.
Metoda makeSound() w klasie Cat jest oznaczona jako final. Próba nadpisania jej w klasie pochodnej Kitten spowoduje błąd.
makeSound(); // Wynik: Generic animal sound
$dog = new Dog();
$dog->makeSound(); // Wynik: Woof!
$cat = new Cat();
$cat->makeSound(); // Wynik: Meow!
// $kitten = new Kitten();
// $kitten->makeSound(); // Błąd kompilacji, jeśli odkomentować
?>
Ten kod demonstruje, jak działa nadpisywanie metod i jak modyfikator final zapobiega temu.
Ten przykład pokazuje podstawowe zastosowanie modyfikatora final w metodach. Zachęcamy do dalszego zgłębiania tematu dziedziczenia i modyfikatorów dostępu w PHP!