Votre question

[Résolu] PHP et POO : Problème de surcharge

Tags :
  • Java
  • Programmation
Dernière réponse : dans Programmation
13 Avril 2007 16:21:57

Bonjour à vous mon problème et pas tres compliqué mais je sais pas comment le résoudre...
  1. Class Maman {
  2. public function __construct() {
  3. $this->load();
  4. }
  5.  
  6. public function load() {
  7. if (...) {
  8. /// du code
  9. } else {
  10. $this->loadDefault();
  11. }
  12. }
  13.  
  14. public function loadDefault() {
  15. //...
  16. }
  1. Class Fille extends Maman {
  2. public function __construct() {
  3. parent::_construt();
  4. //...
  5. }
  6.  
  7. public function loadDefault() {
  8. //...autre chose que Maman::loadDefault()
  9. }


Quand je créé une instance de la classe Fille, la méthode Fille::loadDefault() et appellé dans la méthode Maman::load() (c'est le polymorphisme : liaison dynamique des méthodes)

Sauf que j'ai un membre de la classe mere qui n'est pas accessible depuis ma méthode surchargée Fille::loadDefault().

Dans Maman::load() j'initialise un membre privé (un DOMDocument en l'occurence) qui est utilisé dans loadDefault() que ce soit depuis la classe Maman ou Fille. SAuf que dans Fille, il me di que je fais appelle a un méthode qui n'existe pas (car je fais appelle a la méthode DOMDocument::createElement().

En débuggant à coup de var_dump() je me suis aperçu que jusqu'avant l'appelle de loadDefault() mon membre était bien initialisé. Sauf que des que je passe dans Fille::loadDefault().. l'initialisation a disparu comme si PIOUFFF!

Un idée sur le problème??

Autres pages sur : resolu php poo probleme surcharge

14 Avril 2007 13:36:42

Tu connais la POO et le notion d'héritage et de polymorphisme??
  1. Class Fille extends Maman
Ca, ça veut dire que le classe fille EST la classe Maman + ce que tu rajoute. En Java le code que j'ai écris devrait fonctionner...
Contenus similaires
14 Avril 2007 13:51:28

Ah! c'est un problème le protected.... Quel idiot je fais...
Merci !
14 Avril 2007 14:05:55

je commencais à te repondre mais tu as réctifié...
en java aussi, il y a protected ;) 
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS