{{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;
}
当说到继承,就不得不提到访问控制。继承在不同的访问控制权限下有不同的表现。以成员方法为例,我们可以使用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