package structures; public interface File { boolean estVide(); void enfiler(Object o); Object tête(); Object défiler(); }
La classe LinkedList définit des méthodes supplémentaires (c'est-à-dire des méthodes qui ne sont pas déclarées dans l'interface List). Ce sont les méthodes permettant d'accéder aux deux extrémités de la liste : addFirst, addLast, getFirst, getLast, removeFirst et removeLast. Elles vont permettre de réaliser des files.
Pour utiliser ces méthodes supplémentaires, il est ici nécessaire de déclarer la référence de type LinkedList et non de type List comme le voudrait la discipline d'abstraction :
import java.util.List; import java.util.LinkedList; class FileParListe implements File { private LinkedList contenu; // et non List ... FileParListe() { contenu = new LinkedList(); } public boolean estVide() { return contenu.isEmpty(); } public void enfiler(Object o) { contenu.addFirst(o); } public Object tête() { return contenu.getLast(); } public Object défiler() { return contenu.removeLast(); } }