Bonjour!
Le problème me parait logique, mais je n'ai rien trouvé nulle part à ce sujet.
J'ai une arraylist d'objets de classe A1, A2 etc. dérivants tous de A. (d'ailleurs l'arraylist est typée <A>)
Je pensais naïvement que l'héritage me permettait donc, en prenant n'importe lequel de ces objets, d'appeler les fonctions redéfinies de chacune des classes.
Par exemple:
Or ce code appelle la fonction de la classe mère (A). Ce qui pourrait paraitre normal vu que listeObjets contient du A, pour le compilateur. Mais du coup, s'il faut détecter systématiquement la classe pour appeler la fonction, je ne vois pas l'intérêt du polymorphisme...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 for(int i=0;i<listeObjets.size();i++) { listeObjets.get(i).appelFonction(); }
Trois possibilitées (non incompatibles):
1) Faut utiliser une astuce...
2) Faut pas utiliser une arraylist pour ce genre de besoin...
3) Je n'ai pas tout compris à la POO, ce qui est possible vu mon statut de programmeur du dimanche.
Merci d'avance de tenter d'éclairer ma lanterne!
Partager