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)