方法重叠和继承

时间:2015-07-02 07:06:01

标签: php

以下代码:

class A {
    public function foo() {}
}

class B extends A {
    private function foo() {}
}

给我一​​个错误:“B :: foo()的访问级别必须是公共的(如在A类中)”

为什么我不能将B类中的A类foo方法重写为私有?

2 个答案:

答案 0 :(得分:1)

方法覆盖中的访问规则说明符

唯一的规则是:

"子类重写方法的访问权限不能超过超类方法"。

答案 1 :(得分:0)

class A {
    public function foo() {}
}

class B extends A {
    private function foo() {}
}

如果要覆盖必须公开的功能,则不能使用私有函数覆盖公共函数。