この引数を見てください。}引数にインターフェイスの型が指定されてますよね。インターフェイスが実装されているクラスのオブジェクトだったら,なんでも受け入れるメソッドだと言えます。引数になるオブジェクトが「どの型か」または「どの継承関係にあるか」を問題にしているメソッドではなくて,その機能に着目して作られたメソッドだということ。一般に,オブジェクト指向のプログラミングでは,クラスを分類するわけですけれど,これはクラスの継承関係で分類することになっています。inherit,extend)することで,階層状の機能体系を作るわけです。ような多重継承を許さない言語の場合によく当てはまるんですけれど,継承関係は通常,樹形状の一本道なので(複数の基底クラスを持てない),きれいな継承関係を作ることは至難の業です。メソッドをそれぞれ別々に宣言する必要が出てきます。メソッドを持たせられるんですけれど,継承関係が別の場合はできません。お互いに何の関係もないメソッドになってしまいます。ような,機能単位で分類されたメソッドを作ることもできません。別々に定義しなくちゃいけなくなるわけです。メソッドを呼ぶわけですが。結局,インターフェイスはどゆものなのかというと,クラスの継承関係とは「別に」,「機能単位」でクラスを分類するためにある,といったところになるんだと思います(少なくとも建前上は)。言うなら,インターフェイスは,継承関係の縦糸に対する横糸として位置付けられる,と言ってもいい。継承関係とは別個の,機能を中心とした分類機能を提供している,と。場合,こゆ分類は特別なキーワード(implements)を使わなくても,実質的に純粋仮想関数と多重継承で解決できます。ことで,「インターフェイス」の嬉しさは,ある程度継承関係を作ったクラスを作ってみないと実感できないかもしれません。クラスのまとめ方もいろいろ,つことで。