Final KeywordIf a class is being defined final then it cannot be extended.
If a method is being defined final then it cannot be overrided by child classes.
Only classes and methods may be declared as final.
Properties and constants cannot be declared final.
<?php
final class ParentClass {
}
class ChildClass extends ParentClass {
}
?>
Fatal error: Class ChildClass may not inherit from final class (ParentClass)
<?php
class ParentClass {
public function test() {
}
final public function moreTesting() {
}
}
class ChildClass extends ParentClass {
// Fatal Error: Overriding final methods
public function moreTesting() {
}
}
?>
Fatal error: Cannot override final method ParentClass::moreTesting()
