PHP final 关键字
phpserver side programmingprogramming更新于 2025/7/18 22:37:17
简介
在 PHP 类的实例方法定义中使用 final 关键字可防止其被子类覆盖。同样,如果在类本身的定义中使用 final,则该类无法扩展。
语法
final class myclass {}
class myclass{
final method mymethod(){}
}
final 方法示例
在以下示例中,尝试覆盖 final 方法会导致错误
示例
<?php
class parentclass{
final function test(){
echo "final method in parent class";
}
}
class childclass extends parentclass{
function test(){
echo "overriding final method in parent class";
}
}
$obj=new childclass();
$obj->test();
?>
输出
输出显示以下错误消息
PHP Fatal error: Cannot override final method parentclass::test() in line 16
final 类示例
同样,final 类不能被继承,如下例所示
示例
<?php
final class parentclass{
final function test(){
echo "final method in parent class";
}
}
class childclass extends parentclass{
function test(){
echo "overriding final method in parent class";
}
}
$obj=new childclass();
$obj->test();
?>
输出
输出显示以下错误消息
PHP Fatal error: Class childclass may not inherit from final class (parentclass) in line 16

