Sobes.tech
Middle

Co zabrania używania słowa kluczowego final w PHP?

sobes.tech AI

Odpowiedź od AI

Słowo kluczowe final w kontekście PHP jest używane do zapobiegania dziedziczeniu i nadpisywaniu:

  1. Finalizacja klasy: Zastosowanie final do klasy uniemożliwia tworzenie klas pochodnych dziedziczących z niej.

    <?php
    final class BaseClass {
        // ...
    }
    
    // class DerivedClass extends BaseClass {} // Błąd krytyczny: Klasa DerivedClass nie może dziedziczyć z finalnej klasy BaseClass
    
  2. Finalizacja metody: Zastosowanie final do metody w klasie uniemożliwia jej nadpisanie w klasach pochodnych.

    <?php
    class ParentClass {
        final public function cannotBeOverridden() {
            // ...
        }
    
        public function canBeOverridden() {
            // ...
        }
    }
    
    class ChildClass extends ParentClass {
        // public function cannotBeOverridden() {} // Błąd krytyczny: Nie można nadpisać finalnej metody ParentClass::cannotBeOverridden()
        public function canBeOverridden() {
            // Nadpisanie jest dozwolone
        }
    }
    

final nie można stosować do właściwości klasy.