Sobes.tech
Middle

Que interdit l'utilisation du mot-clé final en PHP?

sobes.tech IA

Réponse de l'IA

Le mot-clé final dans le contexte de PHP est utilisé pour empêcher l'héritage et la surcharge :

  1. Finalisation d'une classe : Appliquer final à une classe empêche la création de classes dérivées qui en héritent.

    <?php
    final class BaseClass {
        // ...
    }
    
    // class DerivedClass extends BaseClass {} // erreur fatale : La classe DerivedClass ne peut pas hériter de la classe finale BaseClass
    
  2. Finalisation d'une méthode : Appliquer final à une méthode dans une classe empêche sa surcharge dans des classes dérivées.

    <?php
    class ParentClass {
        final public function cannotBeOverridden() {
            // ...
        }
    
        public function canBeOverridden() {
            // ...
        }
    }
    
    class ChildClass extends ParentClass {
        // public function cannotBeOverridden() {} // erreur fatale : Impossible de surcharger la méthode finale ParentClass::cannotBeOverridden()
        public function canBeOverridden() {
            // La surcharge est autorisée
        }
    }
    

final ne peut pas être appliqué aux propriétés de la classe.