Sobes.tech
Middle

Cosa vieta l'uso della parola chiave final in PHP?

sobes.tech AI

Risposta dell'AI

La parola chiave final nel contesto di PHP viene utilizzata per impedire l'ereditarietà e la sovrascrittura:

  1. Finalizzazione della classe: Applicare final a una classe impedisce la creazione di classi derivate che ne ereditano.

    <?php
    final class BaseClass {
        // ...
    }
    
    // class DerivedClass extends BaseClass {} // Errore fatale: La classe DerivedClass non può ereditare dalla classe finale BaseClass
    
  2. Finalizzazione del metodo: Applicare final a un metodo all'interno di una classe impedisce che venga sovrascritto nelle classi derivate.

    <?php
    class ParentClass {
        final public function cannotBeOverridden() {
            // ...
        }
    
        public function canBeOverridden() {
            // ...
        }
    }
    
    class ChildClass extends ParentClass {
        // public function cannotBeOverridden() {} // Errore fatale: Non si può sovrascrivere il metodo finale ParentClass::cannotBeOverridden()
        public function canBeOverridden() {
            // La sovrascrittura è consentita
        }
    }
    

final non può essere applicato alle proprietà della classe.