3

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?

1 Answer 1

4

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

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.