Sobes.tech
Middle

Co zakazuje použití klíčového slova final v PHP?

sobes.tech AI

Odpověď od AI

Klíčové slovo final v kontextu PHP se používá k zabránění dědičnosti a přepsání:

  1. Finalizace třídy: Použití final na třídu zakazuje vytváření odvozených tříd, které z ní dědí.

    <?php
    final class BaseClass {
        // ...
    }
    
    // class DerivedClass extends BaseClass {} // Fatální chyba: Třída DerivedClass nemůže dědit z finální třídy BaseClass
    
  2. Finalizace metody: Použití final na metodu uvnitř třídy zakazuje její přepsání v odvozených třídách.

    <?php
    class ParentClass {
        final public function cannotBeOverridden() {
            // ...
        }
    
        public function canBeOverridden() {
            // ...
        }
    }
    
    class ChildClass extends ParentClass {
        // public function cannotBeOverridden() {} // Fatální chyba: Nelze přepsat finální metodu ParentClass::cannotBeOverridden()
        public function canBeOverridden() {
            // Přepsání je povoleno
        }
    }
    

final nelze použít na vlastnosti třídy.