Sobes.tech
Middle

¿Qué prohíbe el uso de la palabra clave final en PHP?

sobes.tech AI

Respuesta de la IA

La palabra clave final en el contexto de PHP se utiliza para evitar la herencia y la sobrescritura:

  1. Finalización de la clase: Aplicar final a una clase impide que se creen clases hijas que hereden de ella.

    <?php
    final class BaseClass {
        // ...
    }
    
    // class DerivedClass extends BaseClass {} // Error fatal: La clase DerivedClass no puede heredar de la clase final BaseClass
    
  2. Finalización del método: Aplicar final a un método dentro de una clase impide que sea sobrescrito en clases hijas.

    <?php
    class ParentClass {
        final public function cannotBeOverridden() {
            // ...
        }
    
        public function canBeOverridden() {
            // ...
        }
    }
    
    class ChildClass extends ParentClass {
        // public function cannotBeOverridden() {} // Error fatal: No se puede sobrescribir el método final ParentClass::cannotBeOverridden()
        public function canBeOverridden() {
            // La sobrescritura está permitida
        }
    }
    

final no se puede aplicar a las propiedades de la clase.