从PHP 5开始,新增了一个final关键字。如果父类中的方法被声明为final,则子类无法覆盖该方法。如果一个类被声明为final,则不能被继承。
1.final方法不能被重写
如果希望类中的某个方法不能被子类重写,就可以设置该方法为final方法,只需要在方法前加上final修饰符即可。如果这个方法被子类重写,将会出现错误。
【例8.6】
运行结果如图8-6所示。从结果可以看出,final方法不能被重写,否则会报错。
2.final类不能被继承
final关键词可以终止类的继承。final类不能有子类,final方法不能被覆盖。
【例8.7】
<?php
final class Poth{
public $aa = 9.99;
}
$poth = new Poth();
echo $poth;
//声明M类,它继承自Poth类,但执行时会出错,final类不能被继承
class M extends Poth {
}
?>
运行结果如图8-7所示。