对于PHP,如果你的课程是最终的,有没有理由使用受保护的?

时间:2016-03-16 01:25:06

标签: php

一个例子:

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';
  }
}

2 个答案:

答案 0 :(得分:1)

没有真正的区别。只能在类中调用privateprotected,并且还可以从子类调用protected

由于您将该类声明为final,因此从实际角度来看,永远不会有子类privateprotected具有相同的效果

答案 1 :(得分:0)

关键是你不能用私有方法覆盖受保护的方法。访问修饰符必须保持不变或更高。所以它必须保持受保护或公开