Was bringt es, ein Objekt als Schnittstelle zu deklarieren? [Duplikat]

Mögliche Duplikate:
Was bedeutet es, auf eine Schnittstelle zu programmieren?

Mir ist aufgefallen, dass manche Leute ein Objekt gerne als eine der von ihm implementierten Schnittstellen deklarierenAuch wenn es im Rahmen der Variablen nicht erforderlich ist, sie als Schnittstelle zu betrachten, z.B. Es gibt keine externe API, die eine Schnittstelle erwartet.

Zum Beispiel:

Map<String, Object> someMap = new HashMap<String, Object>();

Oder du kannst es einfach tun

HashMap<String, Object> someMap = new HashMap<String, Object>();

und vermeiden Sie den Importjava.util.Map insgesamt.

Was sind die Vorteile einer Deklaration über eine Schnittstelle (erste oben) gegenüber der Klasse selbst (zweite oben)?

Vielen Dank

Antworten auf die Frage(5)

Ihre Antwort auf die Frage