在PHP8中,final的中文含义是最终的、最后的意思。被final修饰过的类和方法就是“最终的版本”。
如果关键字final放在类的前面,则表示该类不能被继承。
如果关键字final放在方法的前面,则表示该 方法不能被重新定义。
如果有一个类的格式为:
final class class_name{
// ……
}
则说明该类不可以被再继承,也不能再有子类。
如果有一个方法的格式为:
final function method_name()
则说明该方法在子类中不可以重写,也不可以被覆盖。
使用final关键字的参考代码:
<?php
final class Fruit { //final类Fruit
function __construct(){ //定义构造方法
echo "今日的特价水果是苹果。";
}
}
class MyFruit extends Fruit { //定义Fruit类的子类
function display() //定义子类的方法
{
echo "今日的特价水果是葡萄。";
}
}
$fruit=new MyFruit (); //类的实例化
echo $fruit->display(); //调用类的方法
?>
以上代码在php8中的运行结果为:
Fatal error: Class MyFruit may not inherit from final class (Fruit) in
D:\phpenv\www\localhost\index.php on line 12
说明类Fruit不能被继承,否则会出错。