Hallo,
ich hätte da mal eine Verständnis frage zur Implementierung von Listen.
[CODE lang="java" title="Implementierung gegen das Interface Liste"]List<String> list = new LinkedList<>();
list.add("def");
list.addFirst("abc") //Error -> addFirst gibts nicht[/CODE]
[CODE lang="java" title="Implementierung gegen konkrete List Klasse"]LinkedList<String> linkedList = new LinkedList<>();
linkedList.add("def");
linkedList.addFirst("abc"); //Kein Error, addFirst existiert[/CODE]
In meinem ersten Code Beispiel hab ich gegen das Interface implementiert aber dann nicht die eigentlichen Funktionen von
während im zweiten Beispiel die Funktionen da sind. Da wird auch direkt gegen
implementiert.
Aber warum geht es bei dem ersten Beispiel nicht? Ich gebe doch beim initialisieren den konkreten Typ an.
Ich dachte man sollte am besten immer gegen das Interface implementieren?
ich hätte da mal eine Verständnis frage zur Implementierung von Listen.
[CODE lang="java" title="Implementierung gegen das Interface Liste"]List<String> list = new LinkedList<>();
list.add("def");
list.addFirst("abc") //Error -> addFirst gibts nicht[/CODE]
[CODE lang="java" title="Implementierung gegen konkrete List Klasse"]LinkedList<String> linkedList = new LinkedList<>();
linkedList.add("def");
linkedList.addFirst("abc"); //Kein Error, addFirst existiert[/CODE]
In meinem ersten Code Beispiel hab ich gegen das Interface implementiert aber dann nicht die eigentlichen Funktionen von
Java:
LinkedList<>()
Java:
LinkedList<>()
Aber warum geht es bei dem ersten Beispiel nicht? Ich gebe doch beim initialisieren den konkreten Typ an.
Ich dachte man sollte am besten immer gegen das Interface implementieren?