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 : Sélectionner tout - Visualiser dans une fenêtre à part
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