2010-08-20 3 views
3

Je suis novice dans l'utilisation de la POO en PHP (et en général) et j'avais une question sur l'héritage.Comprendre l'héritage dans php

J'ai les classes suivantes:

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

Ce que je suis en train de faire est passer outre la fonction privée drawBody(). Cela ne semble pas fonctionner. Je pense que c'est parce qu'un objet OCITableServer appelle display(), il appelle display() de la classe parente, qui à son tour appelle son drawBody(), au lieu du nouveau drawBody().

Comment pourrais-je accomplir ce que j'essaie de faire sans redéfinir display() dans ma sous-classe?

Répondre

4

Protected Les méthodes peuvent être remplacées dans les sous-classes. Les fonctions privées ne peuvent pas.

+0

Merci, a travaillé comme un charme. –