déclarer "List maListe=new LinkedList()" ne peut utiliser méthodes propres à LinkedList
bonjour,
J'utilise actuellement le FAQ sur les collections:
http://java.developpez.com/faq/java/...angage_donnees
Je ne saisi pas à 100% la notion de polymorphisme qui me permet de déclarer List maListe=new LinkedList() et non LinkedListmaListe=new LinkedList(). J'aimerai donc votre point de vue sur mon pb ainsi que mon interprétation.
Le problème est que dans le code ci-dessous, si je fais cela, je ne peut accéder aux méthodes propres de LinkedList: getFirst et getLast.
Code:
1 2 3 4 5 6 7
| List maListe=new LinkedList() ; // on crée notre liste chaînée
maListe.add(new Integer(1)) ; // on ajoute l'entier 1 à la liste
maListe.add(new Float(2.15)) ; // on ajoute le flottant 2.15 à la liste
/* On remarque ici que l'entier 1 est la tête de la liste, et que le flottant
* est la queue de la liste. */
System.out.println("first: "+maListe.getFirst()+" Last: "+maListe.getLast()); |
Donc j'aimerai comprendre si le comportement est normal. Pour accéder au méthodes de LinkedList je dois écrire: LinkedList maListe=new LinkedList().
Le polymorphisme nous permet de faire List maListe=new LinkedList() car LinkedListest est une List. Mais le type effectif de maListe devrait tout de même être LinkedList non?Donc on devrait accéder à ces méthodes propres?
Merci pour vos futures réponses.
Cordialement
Cyril