Sobes.tech
Middle

Kas draudžia naudoti raktinį žodį final PHP?

sobes.tech AI

Atsakymas iš AI

Raktas žodis final PHP kontekste naudojamas paveldėjimo ir perrašymo išvengimui:

  1. Klasės galutinis apibrėžimas: final taikymas klasei draudžia kurti išvestines klases, kurios ją paveldi.

    <?php
    final class BaseClass {
        // ...
    }
    
    // class DerivedClass extends BaseClass {} // Mirtina klaida: DerivedClass klasė negali paveldėti iš galutinės BaseClass klasės
    
  2. Metodo galutinis apibrėžimas: final taikymas klasei viduje draudžia šio metodo perrašymą išvestinėse klasėse.

    <?php
    class ParentClass {
        final public function cannotBeOverridden() {
            // ...
        }
    
        public function canBeOverridden() {
            // ...
        }
    }
    
    class ChildClass extends ParentClass {
        // public function cannotBeOverridden() {} // Mirtina klaida: Negalima perrašyti galutinio metodo ParentClass::cannotBeOverridden()
        public function canBeOverridden() {
            // Leidžiama perrašyti
        }
    }
    

final negalima taikyti prie klasės savybių.