购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.8 防止重写

如果你将方法声明为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方法。类似于如下方法: yMNREXEi0MAUjD0KXmRT5K2sLd+5qbNwdDZ0KCPszwbgBJmQ2S9tNLtDON9uembb


Fatal error Cannot override final method Base::testMethod() in ...

点击中间区域
呼出菜单
上一章
目录
下一章
×