Sobes.tech
Middle

Mit tilt a final kulcsszó használata a PHP-ben?

sobes.tech MI

Válasz az MI-től

A final kulcsszó a PHP kontextusában a öröklés és felülírás megakadályozására szolgál:

  1. Osztály véglegesítése: A final alkalmazása egy osztályra megakadályozza, hogy leszármazott osztályokat hozzanak létre belőle.

    <?php
    final class BaseClass {
        // ...
    }
    
    // class DerivedClass extends BaseClass {} // Halálos hiba: A DerivedClass nem örökölhet a végleges BaseClass-ból
    
  2. Metódus véglegesítése: Egy osztályon belüli final alkalmazása megakadályozza, hogy ez a metódus felülírásra kerüljön leszármazott osztályokban.

    <?php
    class ParentClass {
        final public function cannotBeOverridden() {
            // ...
        }
    
        public function canBeOverridden() {
            // ...
        }
    }
    
    class ChildClass extends ParentClass {
        // public function cannotBeOverridden() {} // Halálos hiba: Nem lehet felülírni a végleges ParentClass::cannotBeOverridden() metódust
        public function canBeOverridden() {
            // Felülírás engedélyezett
        }
    }
    

A final nem alkalmazható osztály tulajdonságokra.