>>870
インタフェースのメリット一つとして、
実装を差し替えられることを挙げておこう。
たとえば、以下のコードは便利だとは思わないか?

interface Executale { public void execute(); }

があったとして、

Executable exec = (Executable)Class.forName("HogeExec").newInstance();
exec.execute();

この"HogeExec"という文字列を外部ファイル化しておけば、
コードを再コンパイルせずに、実装を切り替えることができる。
ファクトリーやランチャー、デバッグモジュールなど
アイデア次第で使い道が広がるだろう?