PHP 5 کلمه کلیدی final را معرفی نمود که با پیشوند Final کلاسهای فرزند یک متد را بازنویسی نمایند. اگر خود کلاس با استفاده از final تعریف شده باشد نمیتوان آن را گسترش داد.
Example #1 نمونه متدهای Final
<?php
class BaseClass {
public function test() {
echo "BaseClass::test() called\n";
}
final public function moreTesting() {
echo "BaseClass::moreTesting() called\n";
}
}
class ChildClass extends BaseClass {
public function moreTesting() {
echo "ChildClass::moreTesting() called\n";
}
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting()
?>
Example #2 نمونه کلاس Final
<?php
final class BaseClass {
public function test() {
echo "BaseClass::test() called\n";
}
// Here it doesn't matter if you specify the function as final or not
final public function moreTesting() {
echo "BaseClass::moreTesting() called\n";
}
}
class ChildClass extends BaseClass {
}
// Results in Fatal error: Class ChildClass may not inherit from final class (BaseClass)
?>
Note: ویژگیها را نمیتوان final اعلام نمود تنهاکلاسها و مندها را میتوان final اعلام کرد.