>>372
interfaceは、あるオブジェクト他のオブジェクトと協調するにあたって、
相手のオブジェクトに要求する性質を定義したもの。
クラスとせずinterfaceとすることで、クラス階層相互依存の呪縛から開放され、再利用性が増す。

C++でも純粋仮想関数だけからなるクラス定義で同じ目的が達成できる。