从PHP5开始,新增了一个final关键字。
- 如果父类中的方法被声明为final,则子类无法赋给该方法。
- 如果一个类被声明为final,则不能被继承。
1) final方法不能被重写
如果希望类中的某个方法不能被子类重写,就可以设置该方法为final方法,只需要在方法前加上final修饰符即可。如果这个方法被子类重写,将会出现错误。
例子:
class Math {
//计算两个数值的和
public final function Sum($a,$b){
return $a+$b;
}
}
//final重写报错
class M extends Math {
// public function Sum($a,$b){ //重写Sum方法
// echo '这里先测试一下';
// }
}
$math = new M();
echo $math->Sum(10,20); //30
2) final类不能被继承,要报错
final关键字可以终止类的继承。final类不能有子类,final方法不能被覆盖。
例子:
final class Poth{
public $aa = 9.99;
}
$poth = new Poth();
// echo $poth;
//声明M类,它继承Poth类,但执行时会出错,final类不能被继承。
// class M extends Poth{
// }