6.7.3 使用final关键字禁止继承和重载

PHP提供了final关键字。当在一个函数声明前面使用这个关键字时,这个函数将不能在任何子类中被重载。例如,可以在上一个示例的类A中添加这个关键字,如下所示:


class A

{

public$attribute="default value";

final function operation()

{

echo"Something<br/>";

echo"The value of\$attribute is".$this->attribute."<br/>";

}

}


使用这个方法可以禁止重载类B中的operation()方法。如果尝试这样操作,将看到如下所示的错误:


Fatal error:Cannot override final method A::operation()


也可以使用final关键字来禁止一个类被继承。要禁止一个类被继承,可以按如下所示的方式使用final关键字:


final class A

{…}


如果尝试继承类A,将看到类似于如下所示的错误:


Fatal error:Class B may not inherit from final class(A)