Hallo!
Ich lese oft, dass man, u. a. zum Entkoppeln von Klassen, besser gegen ein abstraktes Interfaces programmiert, als gegen die Klasse selber. Man braucht sich dann nicht um die Implementierungsdetails kümmern.
Also die Methode so deklarieren:
anstatt so:
Ich sehe auch oft, dass bspw. eine ArrayList so erzeugt wird:
Aber ich habe hier doch dann das Problem, dass ich nur die Methoden verwenden kann, die List bereitstellt, oder? Sollte ich ein List-Objekt übergeben, dass noch 5 neue Methoden hat, kann ich die ja gar nicht nutzen, oder?
Verliere ich durch die Verwendung des Interfaces als Parameter bzw.als Referenz nicht an Funktionalität, obwohl ich an Flexibilität gewinne?
Ich lese oft, dass man, u. a. zum Entkoppeln von Klassen, besser gegen ein abstraktes Interfaces programmiert, als gegen die Klasse selber. Man braucht sich dann nicht um die Implementierungsdetails kümmern.
Also die Methode so deklarieren:
Code:
public void someMethod(List param);
Code:
public void someMethod(ArrayList param);
Code:
List<String> list = new ArrayList<>();
Verliere ich durch die Verwendung des Interfaces als Parameter bzw.als Referenz nicht an Funktionalität, obwohl ich an Flexibilität gewinne?
Comment