views:

32

answers:

1

Hi, I'm new to using OOP in PHP (And in general) and I had a question about inheritance.

I have the following classes:

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() {
    ...
  }
}

What I'm trying to do is overrule the private function drawBody(). This doesn't seem to work. I think this is because when a OCITableServer object calls display(), it calls the parent class's display(), which in turn calls its drawBody(), instead of the new drawBody().

How would I accomplish what I'm trying to do without redefining display() in my sub class?

+4  A: 

Protected methods can be overridden in subclasses. Private functions cannot.

Bill Karwin
Thanks, worked like a charm.
The_Denominater