いいんですけど,インターフェイスを使う意味が分からないという話をよく聞きます。あたしも覚えたての頃,なんでメソッドだけ宣言したクラスが必要なのか分かりませんでした。パターンの使いどころも分からない。ことで,メモがてら説明。インターフェイスと同じ意味になります。インターフェイスのよくある説明では,こんな風に説明されています。第14回そしてもう1つ、これから説明する「インターフェイス」という仕組みもあります。Javaのインターフェイスについて、「Java入門」と銘打っている書籍などでは、Javaでは多重継承がない代わりにインターフェイスという技術が使われますなんていうことがチャラっと書いてあります。読者は多重継承もインターフェイスも分からないから入門書を読んでいるわけで「多重継承がないのなら多重継承なんて言葉は使わなくてもいいからインターフェイスをきちんと説明してくれ」と思ってしまいます。(snip)「インターフェイス」はコンピュータ業界ではよく使われる言葉です。1394インターフェイス」という接続端子的な意味から、キーボードやマウスといった「ヒューマンインターフェイス」、さらには疑似的なボタンなどを画面に表示する「グラフィカルユーザーインターフェイス(GUI)」まで、さまざまな場面で使われます。インターフェイス(interface)は本来「界面」という意味で、性質の異なるもの同士の接し合っている面のことをいいます。(snip)何となく分かってきませんか?あるクラスがどんなインターフェイスを実装しているかを見れば、そのクラスでどんなメソッドが利用可能なのか分かるのです。Windows用のパソコンとプレイステーション2は別の機械ですが、どちらにもUSBインターフェイスが付いていますので、USBキーボードを接続して操作できます。この後で,インターフェイスを実装(implement)するクラスは,インターフェイスで宣言しているメソッドを実装しなくてはいけない,といった実装方法に移ります。これで意味分かるでしょうか?この説明で分かったらすごいと思う。いったハードウェアのインターフェイスとはあまり関係がない。いや,まったく関係ないかというと,そういうわけでもないんだけれども,関係ないと思った方が理解しやすいはずです。考えればいいかというと,オブジェクト指向に言う「インターフェイス」は,クラスを「機能単位で」分類するためにある,と考えた方がいいんじゃないかと思います。入門書なんかに書いてあります。場合は仮想関数)を見ればいいはずです。場合は多重継承できないから,少しは意味があるんだろうけど)。インターフェイスの便利な点は,「機能の内容が分かる」とかいったような,プログラマにとっての嬉しさにあるわけじゃありません。それは,クラスを「機能単位」で分類することができる,という点にある。話が抽象的なので,具体例を挙げます。クラスから呼び出されます。