Назад к вопросам
Middle
92
questionbank

Что запрещает использование ключевого слова final в PHP?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Ключевое слово final в контексте PHP используется для предотвращения наследования и переопределения:

  1. Финализация класса: Применение final к классу запрещает создание дочерних классов, наследующих от него.

    <?php
    final class BaseClass {
        // ...
    }
    
    // class DerivedClass extends BaseClass {} // Fatal error: Class DerivedClass cannot inherit from final class BaseClass
    
  2. Финализация метода: Применение final к методу внутри класса запрещает переопределение этого метода в дочерних классах.

    <?php
    class ParentClass {
        final public function cannotBeOverridden() {
            // ...
        }
    
        public function canBeOverridden() {
            // ...
        }
    }
    
    class ChildClass extends ParentClass {
        // public function cannotBeOverridden() {} // Fatal error: Cannot override final method ParentClass::cannotBeOverridden()
        public function canBeOverridden() {
            // Переопределение разрешено
        }
    }
    

final нельзя применять к свойствам класса.