Sobes.tech
Middle

Mis takistab PHP-s võtmesõna final kasutamist?

sobes.tech AI

Vastus AI-lt

Võtmesõna final PHP kontekstis kasutatakse pärimise ja ülekirjutamise vältimiseks:

  1. Klassi lõplikuks muutmine: final rakendamine klassile takistab sellest pärilike klasside loomist.

    <?php
    final class BaseClass {
        // ...
    }
    
    // class DerivedClass extends BaseClass {} // Surmav viga: DerivedClass klass ei saa pärida final klassilt BaseClass
    
  2. Meetodi lõplikuks muutmine: final rakendamine klassi sees takistab selle meetodi ülekirjutamist pärilikes klassides.

    <?php
    class ParentClass {
        final public function cannotBeOverridden() {
            // ...
        }
    
        public function canBeOverridden() {
            // ...
        }
    }
    
    class ChildClass extends ParentClass {
        // public function cannotBeOverridden() {} // Surmav viga: Ei saa ülekirjutada final meetodit ParentClass::cannotBeOverridden()
        public function canBeOverridden() {
            // Ülekirjutamine on lubatud
        }
    }
    

final ei saa rakendada klassi omadustele.