インターフェースが冗長ならDIも冗長だよね。

酔っ払いの戯れ言ですが。DIって、依存する実装を注入できるからうれしいのであって、インターフェースがなきゃ話にならんと思うんですが、どうなんすかね。抽象クラスで扱うからいいんだわ(名古屋弁)っちゅーなら、インターフェースの概念からすると、インターフェース不要とは言えないっすよ。
おみゃーさん何言っとるがねー、というツッコミされそうな事を覚悟してつらつらかきますよ。
Javaのインターフェースって、概念としては全てのインスタンスがもっとるわけで、本質的にはクラスの外側からアクセスできるメソッド群の事を指すのかなと。で、クラスや、インターフェースはメソッドをまとめておく、まとまりなのかと。概念として、このメソッドのまとまりの事をタイプと呼びましょうか。オブジェクトはどんなタイプにもキャストできますよね。これって結局実装時には扱っているオブジェクトがどんなタイプの実装なのか、分かってないんですよね。
で、DIのうれしさは、あるタイプのオブジェクトを注入できることだと思うんですよ。もし、インターフェースが冗長と言うのであれば、タイプは1種類に限定されるので、DIも不要になるわけですよ。抽象クラスうんぬんになってくると、タイプは複数種指定できる訳ですが、抽象クラスはインターフェース+いくつかのメソッドの実装なんですよね。
タイトルで以上!でもよかったんですが、ちょっと書いてみた。もうちょっとわかりやすい書き方あるんだろうな…。でも酔っ払いなので勘弁。