Von Joshua Blochs, Effektive Java, sagt er, dass es besser ist, wenn möglich, Objekte über ihre Schnittstellen zu verweisen. Dies gibt Ihrem Programm im Laufe der Zeit mehr Flexibilität, und wenn Sie entscheiden, dass Sie Implementierungen wechseln wollen, müssen Sie nur den Klassennamen im Konstruktor ändern. Gründe für eine Änderung der Implementierung können eine bessere Leistung oder zusätzliche Funktionalität sein.
Es ist völlig in Ordnung, auf Objekt für Klasse statt auf Schnittstelle zu verweisen, wenn keine Schnittstelle dafür existiert.