一个例子:
class A {
protected function foo() {
echo 'fooA';
}
}
我想覆盖我的子类中的foo(),这是最终的。有没有理由在这里使用受保护的?
final class B extends A {
protected function foo() {
echo 'fooB';
}
}
VS
final class B extends A {
private function foo() {
echo 'fooB';
}
}
答案 0 :(得分:1)
没有真正的区别。只能在类中调用private
和protected
,并且还可以从子类调用protected
。
由于您将该类声明为final
,因此从实际角度来看,永远不会有子类private
和protected
具有相同的效果
答案 1 :(得分:0)
关键是你不能用私有方法覆盖受保护的方法。访问修饰符必须保持不变或更高。所以它必须保持受保护或公开