Sobes.tech
Middle

Was verbietet die Verwendung des Schlüsselworts final in PHP?

sobes.tech KI

Antwort von AI

Das Schlüsselwort final im Kontext von PHP wird verwendet, um Vererbung und Überschreibung zu verhindern:

  1. Finalisierung der Klasse: Die Anwendung von final auf eine Klasse verhindert, dass abgeleitete Klassen von ihr erben.

    <?php
    final class BaseClass {
        // ...
    }
    
    // class DerivedClass extends BaseClass {} // Fataler Fehler: Die Klasse DerivedClass kann nicht von der finalen Klasse BaseClass erben
    
  2. Finalisierung der Methode: Die Anwendung von final auf eine Methode innerhalb einer Klasse verhindert, dass diese Methode in abgeleiteten Klassen überschrieben wird.

    <?php
    class ParentClass {
        final public function cannotBeOverridden() {
            // ...
        }
    
        public function canBeOverridden() {
            // ...
        }
    }
    
    class ChildClass extends ParentClass {
        // public function cannotBeOverridden() {} // Fataler Fehler: Kann die finale Methode ParentClass::cannotBeOverridden() nicht überschreiben
        public function canBeOverridden() {
            // Überschreiben ist erlaubt
        }
    }
    

final kann nicht auf Klassenpropertys angewendet werden.