Понимание наследования в php - PullRequest
3 голосов
/ 21 августа 2010

Я новичок в использовании ООП в PHP (и вообще), и у меня возник вопрос о наследовании.

У меня есть следующие классы:

class OCITable {
  public function display() {
    $this->drawHeader();
    $this->drawFooter();
    $this->drawBody();
  }

  private function drawHeader() {
    ...
  }

  private function drawFooter() {
    ...
  }

  private function drawBody() {
    ...
  }
}

class OCITableServer extends OCITable {
  private function drawBody() {
    ...
  }
}

Что япопытка сделать это отменяет приватную функцию drawBody().Это не похоже на работу.Я думаю, это потому, что когда объект OCITableServer вызывает display(), он вызывает display() родительского класса, который в свою очередь вызывает его drawBody() вместо нового drawBody().

Как быЯ выполняю то, что пытаюсь сделать, не переопределяя display() в моем подклассе?

1 Ответ

4 голосов
/ 21 августа 2010

Protected методы могут быть переопределены в подклассах. Частные функции не могут.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...