tenev911
Messages postés23Date d'inscriptionjeudi 21 juillet 2005StatutMembreDernière intervention19 avril 2009
-
27 mai 2007 à 01:59
tenev911
Messages postés23Date d'inscriptionjeudi 21 juillet 2005StatutMembreDernière intervention19 avril 2009
-
27 mai 2007 à 10:58
Bonjour, je n'ai pas trouvé de sujet comme celui çi dans le moteur de recherche du forum
J'ai une ArrayList qui se présente comme ceci
(A et B sont deux classes, B étend A)
ArrayList a = new ArrayList();
A b = new B();
a.add(b);
Jusqu'ici tout va bien, B étend A donc aucun probleme, maintenant A possède une methode toString() et B reprend cette meme methode ( avec super.toString() ) en y ajoutant quelques truc en plus.
Mais voila le probleme, si je fait :
System.out.println(a.get(0))
Il me renvoie le toString() de A et non de B !
Encore pire ! Si je fait :
if(a.get(0) instanceof B)
Il ne detecte pas que a.get(0) est une instance de B !
Sachant que je ne suis pas sur s'il y a du A ou du B dans mon ArrayList, je ne peux pass faire :
System.out.println((B) a.get(0))
(Ce qui est en passant tout a fait moche vu que le polymorphisme devrait s'en occuper)
Donc ma question est : Comment faire ? Et dite moi si c'est normal ou si ca vient d'une erreur de programmation que j'aurai pu faire quelque part (Vous aurez bien deviné qu'il s'agit d'un exemple)