Wozu Upcasting? Am Beispiel List = ArrayList

Maddin2904

Neues Mitglied
Hallo zusammen,
mir ist des öfteren aufgefallen, dass häufig folgendes programmiert wird:
Java:
List<String> liste1 = new ArrayList<>();
Ich habe mich gefragt wo hierbei der praktische Vorteil gegenüber
Java:
ArrayList<String> liste2 = new ArrayList<>();
liegt.

Ich sehe darin sogar eher einen Nachteil, man hat mit liste1 nur die Möglichkeit auf die Methoden von List zuzugreifen, während mit der liste2 zusätzlich auf die Methoden von ArrayList zugegriffen werden kann.

Ist jemand in der Lage mir dieses Geheimnis zu entlüften? :)

Vielen Dank.
Martin
 

butterbemme

Gesperrter Benutzer
Wenn du ein Framework entwickelst, das andere benutzen können/sollen, ist es sinnvoller auf Schnittstellen (List) zu programmieren und nicht auf Implementierungen (ArrayList).

Sagen wir du bietest in deiner Klasse eine Funktion an die eine List als Eingabeparameter erwartet. Jetzt bleibt es dem eigentlichen Programmierer überalssen welche konkrete Implementierung er von List verwendet um mit deiner Klasse zu kommunizieren. Er kann ne ArrayList benutzen, oder auch n Vector oder oder oder. Es bleibt ihm freigestellt und er kann nach seinen Bedürfnissen entscheiden

Deine Klasse kann dann zwar nur die Funktionen von List verwenden, aber die reichen dir in diesem Fall auch, sonst hättest du dich nicht für List entschieden
 
D

dhalsim

Gast
Ich habe mich gefragt wo hierbei der praktische Vorteil gegenüber ... liegt.
Wird umfassend hier diskutiert: Design Principles from Design Patterns. Ansonsten einfach mal googeln.
Ich sehe darin sogar eher einen Nachteil, man hat mit liste1 nur die Möglichkeit auf die Methoden von List zuzugreifen, während mit der liste2 zusätzlich auf die Methoden von ArrayList zugegriffen werden kann.
Welche da konkret wären? Wenn sowas der Fall wäre, würde das eher auf ein unvollständiges Interface oder eine "krumme" Verwendung der Implementierung hinweisen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Wozu dient Interfaces? Java Basics - Anfänger-Themen 6
berserkerdq2 Wozu benötigt man den BiPredicate, kann ich nicht einfach eine normale Methode nutzen, statt BiPredicate? Java Basics - Anfänger-Themen 3
N Wozu nutzt man in der Main Methode das args Array? Java Basics - Anfänger-Themen 10
S Vererbung Abstrakte Methoden: Wozu das Ganze?! Java Basics - Anfänger-Themen 7
W Stackabarbeitung - Wozu dient das "True" ? Java Basics - Anfänger-Themen 1
R Wozu sind Annotations da? Java Basics - Anfänger-Themen 3
H abstract - Wozu? Java Basics - Anfänger-Themen 6
T Erste Schritte Endlosschleife & wozu braucht man /* und */ Java Basics - Anfänger-Themen 19
V OOP Wozu Objekt erstellen? Java Basics - Anfänger-Themen 2
G Wozu ist die Methode offsetByCodePoints(int, int) beim StringBuilder sinnvoll? Java Basics - Anfänger-Themen 1
G wozu dient getContentPane()? Java Basics - Anfänger-Themen 1
P Wozu brauche ich (this.)? Java Basics - Anfänger-Themen 3
F Wozu braucht man array list? Java Basics - Anfänger-Themen 29
U Wozu dient ein Vector in Java? Java Basics - Anfänger-Themen 6
B Wozu Observer? Java Basics - Anfänger-Themen 9
D Sinn von Interfaces - Wozu? Java Basics - Anfänger-Themen 9
J Datentypen Array in enum, ?? Wozu ?? Java Basics - Anfänger-Themen 3
J Wozu werden die anonyme Klassen verwendet? Java Basics - Anfänger-Themen 9
F Wozu ist Java gut? Java Basics - Anfänger-Themen 7
H Maps? Wozu? Nutzen? Java Basics - Anfänger-Themen 3
0 Wozu braucht man Generics? Java Basics - Anfänger-Themen 1
V wozu ist das 'L' beim long notwendig ? Java Basics - Anfänger-Themen 5
A wozu ant? Java Basics - Anfänger-Themen 12
S Wozu dient die Main Class? Java Basics - Anfänger-Themen 3
Y Wann / Wozu inner class Java Basics - Anfänger-Themen 3
S Desginfrage Interface - aber wozu eigentlich? Java Basics - Anfänger-Themen 2
E Wozu dienen Schnittstellen? Java Basics - Anfänger-Themen 16
N Wozu Applications? Java Basics - Anfänger-Themen 8
M Methode bekommt ein Objekt der Klasse als Parameter. Wozu? Java Basics - Anfänger-Themen 4
R Wozu sind Interfaces gut? Java Basics - Anfänger-Themen 14
B Hashcode?Was ist das und wozu? Java Basics - Anfänger-Themen 2
R Wozu Interfaces ? Java Basics - Anfänger-Themen 5
G Konstruktoren (was, wozu, wieso, warum) Java Basics - Anfänger-Themen 4
V foreach Upcasting Java Basics - Anfänger-Themen 4
T Beispiel Polymorphie, Tier hund = new Hund(); Java Basics - Anfänger-Themen 3
J Fehlerbehandlung an einem Beispiel Java Basics - Anfänger-Themen 8
U Beispiel Methode size() vom "Collection"-interface... Wie kann man sichtbar machen, was die Methode unter der Haube macht? Java Basics - Anfänger-Themen 8
Blndner Auto Beispiel Java Basics - Anfänger-Themen 4
melisax Beispiel Java umprogrammieren Java Basics - Anfänger-Themen 23
dieter000 Frage zu einem Beispiel... Java Basics - Anfänger-Themen 5
dieter000 Hilfe bei dem Beispiel, wie gehe ich sowas am besten an? Java Basics - Anfänger-Themen 32
marcooooo Kann mir jemand das Beispiel kurz erklären so ungefähr:/ Java Basics - Anfänger-Themen 7
marcooooo Frage zu bestimmten Beispiel Java Basics - Anfänger-Themen 31
NeoLexx equals()-Methode Verständnis Frage anhand Code Beispiel Java Basics - Anfänger-Themen 22
C Beispiel-Code mit Pair wird nicht compiliert. Java Basics - Anfänger-Themen 8
B Webhooks verstehen - Beispiel? Java Basics - Anfänger-Themen 25
B Java Vererbung Fragen (zu Code Beispiel) Java Basics - Anfänger-Themen 3
J For-Schleife (Beispiel) Java Basics - Anfänger-Themen 6
G Rekursion Beispiel Java Basics - Anfänger-Themen 3
H OOP, wie gehts richtig? (Beispiel von meinem Prof) Java Basics - Anfänger-Themen 6
J Suche simples Beispiel für die EOFException Java Basics - Anfänger-Themen 1
O Wert in einer URL hinzufügen (in meinem Beispiel Google) Java Basics - Anfänger-Themen 7
F jscience Beispiel Java Basics - Anfänger-Themen 0
D Klassen Gesucht: Einfache Beispiel-Klasse für einen Datentyp Java Basics - Anfänger-Themen 7
B Erste Schritte Way of life ohne import - Habe Beispiel, macht Unfug Java Basics - Anfänger-Themen 21
J Kompilieren von HelloWorld Beispiel schlägt fehl Java Basics - Anfänger-Themen 7
Z Schleifen Beispiel: Fakultät Java Basics - Anfänger-Themen 26
M Frage zum generellen Verständiss von OO an einem Beispiel Java Basics - Anfänger-Themen 4
L GridLayout, Beispiel? Java Basics - Anfänger-Themen 2
L Beispiel Projekte Java Basics - Anfänger-Themen 3
B Erste Schritte HILFE Brauche ein Beispiel für korrekte Syntax mit Semantikfehlern Java Basics - Anfänger-Themen 6
V Objekte/Klassen erstellen - Erklärung anhand Beispiel Java Basics - Anfänger-Themen 4
J Interface Frage zu Interfces am Beispiel Observer Pattern Java Basics - Anfänger-Themen 8
T Erste Schritte für was steht das "this" in dem Beispiel... Java Basics - Anfänger-Themen 2
B Grundlagen von Methoden an folgendem Beispiel Java Basics - Anfänger-Themen 52
E Polymorphie Beispiel Polymorphie Java Basics - Anfänger-Themen 2
M Threads am Beispiel Parkhaus Java Basics - Anfänger-Themen 10
G OOP Beispiel Objekte zugreifen Java Basics - Anfänger-Themen 3
M Suche Beispiel-Spiel Java Basics - Anfänger-Themen 3
M Ganz einfaches Beispiel, finde den Fehler aber nicht :( Java Basics - Anfänger-Themen 2
A Frage zu Beispiel eines Dekorierers von InputStream Java Basics - Anfänger-Themen 4
M Kann kein Objekt (AudioFile in diesem Beispiel) für ein leeren String erzeugen Java Basics - Anfänger-Themen 3
P wie oop an diesem beispiel verbessern? Java Basics - Anfänger-Themen 31
K return-Anweisung am Beispiel eines Palindroms Java Basics - Anfänger-Themen 18
P Datentypen Warum würde dieses Beispiel nicht funktionieren? Java Basics - Anfänger-Themen 6
V KeyListener Beispiel Java Basics - Anfänger-Themen 13
S Objektidentität und gleichheit an diesem Beispiel Java Basics - Anfänger-Themen 7
S Komposition beispiel anhand eines kopierers Java Basics - Anfänger-Themen 4
M Gutes Beispiel für Exception- werfende & behandelnde Methode Java Basics - Anfänger-Themen 5
H Webservice - Einfaches Beispiel Java Basics - Anfänger-Themen 2
b101 OOP Beispiel Klausur Aufgabe der FH Java Basics - Anfänger-Themen 22
T Java Beispiel Bitte helft mir Java Basics - Anfänger-Themen 5
Gonzalez Eingabe des Benutzers mittels readLine()-Methode. Klappt in meinem Beispiel nicht! Java Basics - Anfänger-Themen 7
V Präinkrement Beispiel Java Basics - Anfänger-Themen 14
M Swing Beispiel Java Basics - Anfänger-Themen 2
M [Einfaches Beispiel] Problem mit innere Klassen Java Basics - Anfänger-Themen 4
M Beispiel-Webprojekt: Statt HSQLDB Postgres verwenden Java Basics - Anfänger-Themen 12
M Serialisierung erstes Beispiel Java Basics - Anfänger-Themen 4
razwed4ik zum Beispiel aus Java Insel Buch Java Basics - Anfänger-Themen 7
M DBCP - Kleines Beispiel Java Basics - Anfänger-Themen 3
M Data Access Object - Beispiel Java Basics - Anfänger-Themen 11
M Beispiel für Linked List Java Basics - Anfänger-Themen 9
A programmier beispiel Java Basics - Anfänger-Themen 18
A ausgabe eines arrays - einfaches beispiel Java Basics - Anfänger-Themen 4
Z Beispiel Würfelspiel mit Verwendung von Feldern Java Basics - Anfänger-Themen 7
Q POI Beispiel Programme Java Basics - Anfänger-Themen 2
J Das schöne Bouncing Ball Beispiel. Java Basics - Anfänger-Themen 20
N Java Insel - RMI Beispiel Java Basics - Anfänger-Themen 12
J Plymorphismus - unklarheit zu einem Beispiel Java Basics - Anfänger-Themen 6
S Gutes Beispiel für Vererbung? Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben