Sobes.tech
Middle

O que impede o uso da palavra-chave final em PHP?

sobes.tech IA

Resposta da IA

A palavra-chave final no contexto do PHP é usada para impedir herança e sobrescrita:

  1. Finalização de classe: Aplicar final a uma classe impede que classes filhas a herdem.

    <?php
    final class BaseClass {
        // ...
    }
    
    // class DerivedClass extends BaseClass {} // Erro fatal: A classe DerivedClass não pode herdar de uma classe final BaseClass
    
  2. Finalização de método: Aplicar final a um método dentro de uma classe impede que ele seja sobrescrito em classes filhas.

    <?php
    class ParentClass {
        final public function cannotBeOverridden() {
            // ...
        }
    
        public function canBeOverridden() {
            // ...
        }
    }
    
    class ChildClass extends ParentClass {
        // public function cannotBeOverridden() {} // Erro fatal: Não é possível sobrescrever o método final ParentClass::cannotBeOverridden()
        public function canBeOverridden() {
            // Sobrescrita permitida
        }
    }
    

final não pode ser aplicado às propriedades da classe.