Die Absicht war, Abhängigkeiten zwischen Implementierungen von Klassen zu reduzieren. interfaces sind ein moderneres Mittel zum gleichen Zweck.
Beispiel http://java.sun.com/j2se/1.5.0/docs/api/
interface List<E> { void add(E o); E get(int i); .. } class ArrayList<E> implements List<E> { .. } List<String> ls = new ArrayList<String> (); // oder: new LinkedList<String> (); ls.add ("foo"); System.out.println (ls.get (0));
grundsätzlich alle Variablen über Interface deklarieren!