>>684
> デフォルト以外の実装を使いたくなって自作するとき、
> しかもそれが別のクラスを継承する必要があったりしたら、
> Interfaceじゃなきゃ困るんじゃないか?
デフォルトの実装が存在するならば、抽象クラスで十分
別の実装が必要ならばオーバライドしてしまえばいい。

ではないですね。Javaでは単一継承しか許さないので破綻しますね。
C++の場合は何とかなってしまいますけど...なるほど、理解しました。

また、くだらない質問ですが、何故「*Impl」なんでしょう?
デフォルトの実装ならば「*Default」、または
インターフェースと同じクラス名の方が私にはしっくりきます。