日期:2014-05-17  浏览次数:20400 次

{{PHP}}PHP继承的访问控制
{{PHP}}PHP继承的访问控制

当说到继承,就不得不提到访问控制。继承在不同的访问控制权限下有不同的表现。以成员方法为例,我们可以使用private和protected访问修饰符来控制需要继承的内容。

private     如果一个成员被指定为private,它将不能被继承。实际上在PHP中这个方法会被继承下来,只是无法访问。 
protected   如果一个成员被指定为protected,它将在类外不可见,可以被继承。 

看一个PHP的示例:

class Base {
    private function privateMethod() {
    }
}
 
class Child extends Base{
    public function publicMethod() {
    }
}
 
$c = new Child();
 
if (method_exists($c, 'privateMethod')) {
    echo 1;
}else{
    echo 0;
}

这段代码会输出1,至此,我们可以证明:在PHP中,对于私有方法,在继承时是可以被继承下来的。

请见:https://github.com/billfeller/tipi/blob/master/book/chapt05/05-04-class-inherit-abstract.markdown