Junior
Jaký je účel klíčového slova final v PHP?
sobes.tech AI
Odpověď od AI
Klíčové slovo final se používá k zabránění přepsání tříd, metod a konstant.
Použití:
-
Třídy: Pokud je třída deklarována jako
final, nelze ji dědit.<?php final class Base { // ... } // Fatální chyba: Třída Derived nemůže dědit z finální třídy Base // class Derived extends Base { // // ... // } -
Metody: Pokud je metoda třídy deklarována jako
final, nelze ji přepsat v odvozené třídě.<?php class Base { final public function process() { // ... } } class Derived extends Base { // Fatální chyba: Nelze přepsat finální metodu Base::process() // public function process() { // // ... // } } -
Konstanty: Od PHP 8.1 mohou být třídy konstanty také deklarovány jako
final. To zabrání jejich přepsání v odvozených třídách.<?php class Base { final public const VERSION = '1.0'; } class Derived extends Base { // Fatální chyba: Nelze přepsat finální konstantu Base::VERSION // public const VERSION = '1.1'; }
Účel final:
- Bezpečnost: Zajišťuje, že klíčová logika nebo očekávané chování třídy/metody nebude změněno v podtřídách.
- Stabilita API: Zaručuje, že konkrétní implementace metody nebo třídy nebude modifikována, což je zvláště důležité při vývoji knihoven.
- Výkon (nepatrně): V některých případech může umožnit optimalizátoru kompilátoru dělat agresivnější inline optimalizace, protože je známo, že metoda nebude přepsána.