уменьшить уровень доступа к функции в производном классе - PullRequest
2 голосов
/ 14 декабря 2010

Есть ли возможность уменьшить уровень доступа к функции в производном классе в PHP?

пример (... означает больше кода)

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

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

Теперь я должен 'Нельзя назвать MyFunc Ион bar объектом.Но делать это таким образом не представляется правильным в PHP.Любым другим путем?Я знаю, что могу реализовать пустую функцию, но вообще не хочу показывать эту функцию в интерфейсе.

1 Ответ

4 голосов
/ 14 декабря 2010

В ООП все равно не действует. Если вы реализуете открытый метод, вы обещаете, что этот класс и все дочерние элементы предоставляют эту функциональность. Удаление открытого метода означает, что вы нарушаете свои обещания;) Поскольку все открытые методы и свойства определяют интерфейс класса, и нарушение интерфейса никогда не является хорошей идеей.

Без более четкой информации о том, что вы собираетесь делать, я предлагаю просто выдать исключение, что-то вроде «Не поддерживается».

...