降低派生类中函数的访问级别

时间:2010-12-14 08:31:48

标签: php extends private-methods

是否有可能降低PHP中派生类中函数的访问级别?

示例(...表示更多代码)

class foo
{
  public function myFunction() { ... }
  public function myOtherFunction() { ... }
}

class bar extends foo
{
  private function myFunction() { ... }
}

现在我无法调用MyFunc离开bar个对象。但是这样做在PHP中似乎没有用。还有其他方法吗?我知道我可以实现一个空函数,但我不想在接口中公开该函数。

1 个答案:

答案 0 :(得分:4)

无论如何它在OOP中无效。如果您实现了一个公共方法,那么您保证,此类和所有子级都提供此功能。删除公共方法意味着你违反了承诺;)因为所有公共方法和属性都定义了类的接口并且破坏接口绝不是一个好主意。

如果没有关于你将要做什么的更清楚的信息,我建议只抛出异常,例如“不支持”。