PHP 中的 final 关键字

2022-12-16 21:29:16 浏览数 (1)

1. final 关键字

先来记重点:final 修饰的类不能被继承,final 修饰的方法不能被重写

PHP 从 5.x 版本开始新增了 final 关键字,它可以在类或类的方法前面使用,但是不能用来修饰类的属性

final 的中文含义是:最终的、不可更改的,所以被 final 修饰的类称为 ”最终类“,被 final 修饰的方法称为 “最终方法”

2. final 使用示例

错误演示:当继承被 final 修饰的类时,PHP 会直接抛出致命错误

代码语言:javascript复制
final class A
{
}
class B extends A
{
}
# 致命错误:类 B 不能继承最终类 A
Fatal error: Class B may not inherit from final class (A) in /Users/liang/code/php/1.php on line 9

错误演示:当重写被 final 修饰的方法时,PHP 会直接抛出致命错误

代码语言:javascript复制
class A
{
    final public function liang()
    {
        echo 'vue';
    }
}
class B extends A
{
    public function liang()
    {
        echo 'php';
    }
}
# 致命错误:无法重写最终方法 A::liang()
Fatal error: Cannot override final method A::liang() in /Users/liang/code/php/1.php on line 17

0 人点赞