在PHP8中,final的中文含义是最终的、最后的意思。被final修饰过的类和方法就是“最终的版本”。
如果关键字final放在方法的前面,则表示该 方法不能被重新定义。
如果有一个类的格式为:
- final class class_name{
- // ……
- }
则说明该类不可以被再继承,也不能再有子类。
如果有一个方法的格式为:
final function method_name()
则说明该方法在子类中不可以重写,也不可以被覆盖。
-
- 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不能被继承,否则会出错。