以下代码:
class A {
public function foo() {}
}
class B extends A {
private function foo() {}
}
给我一个错误:“B :: foo()的访问级别必须是公共的(如在A类中)”
为什么我不能将B类中的A类foo方法重写为私有?
答案 0 :(得分:1)
方法覆盖中的访问规则说明符
唯一的规则是:
"子类重写方法的访问权限不能超过超类方法"。
答案 1 :(得分:0)
class A {
public function foo() {}
}
class B extends A {
private function foo() {}
}
如果要覆盖必须公开的功能,则不能使用私有函数覆盖公共函数。