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