PHP Final Keyword

In PHP, the final keyword is used to restrict the inheritance and overriding of classes and methods. When a class or method is marked as final, it means that it cannot be extended or overridden by any child class.

Final Class:

When a class is declared as final, it cannot be subclassed or extended by any other class. This means that the final class cannot serve as a parent class.

final class FinalClass {
    // Class implementation
}

class SubClass extends FinalClass {
    // Error: Cannot extend final class FinalClass
}

Final Method:

When a method is declared as final, it cannot be overridden by any child class. This ensures that the behavior of the method remains the same throughout the inheritance hierarchy.

class ParentClass {
    final public function finalMethod() {
        // Method implementation
    }
}

class ChildClass extends ParentClass {
    public function finalMethod() {
        // Error: Cannot override final method finalMethod()
    }
}

In the above example, the finalMethod() in the ParentClass is marked as final, preventing the ChildClass from overriding it. If you attempt to override a final method, PHP will throw an error.

The final keyword provides a way to explicitly indicate that a class or method should not be modified or extended. It can be useful in scenarios where you want to ensure that certain aspects of your code remain unchanged, preventing unintentional modifications or overrides.