如果你将方法声明为final方法,它不能被任何子类覆盖/重写。如果不希望有人来重写你的类或方法,都可以声明为final。我们来看代码清单2-11:
代码清单2-11 声明为final方法
<?php // base class class Base { final public function testMethod() { echo 'This is a final method'; } } class BaseChild extends Base { // override testMethod() public function testMethod() { echo 'Another text'; } }?>
如果我们执行上述代码,PHP会告诉我们一个致命的错误,因为子类试图重写父类的final方法。类似于如下方法:
Fatal error: Cannot override final method Base::testMethod() in ...