インターフェースとは? インターフェースの仕組み マウスがクリックされたり、ドラッグされた等、イベントが検出された時の処理は、リスナと呼ばれるクラス(注)の特定のメソッドに記述します。
此は、例えば画面の表示が必要になった時、FrameクラスやAppletクラスのスーパークラスであるContainerクラスのpaintメソッドが呼び出される事と同じです。
作成したクラスでは、必ずpaintメソッドをオーバーライドします。
同様の事を行うには、本来ならリスナークラスを継承し、此のメソッドをオーバーライドしたい所です。
所が、フレームを表示するGUIのプログラムで有ればFrameクラスを、アプレットで有ればAppletクラスを既に継承していますので、もう此以上他のクラスを継承出来ません。
其処で継承したい2つ目のクラスを、クラスではなくインターフェースと呼ばれる別の仕組みにする事が考えられました。
インターフェースには、メソッド名と仮引数及び、メソッドの型だけが登録されています。
イベントが発生した時の処理は、此から作る各クラスで各々異なるので、何れオーバーライドされる物です。
其の為、元々インターフェースでは、メソッドの内容は空っぽでも良かったのです。
つまりインターフェースは、呼び出されるメソッドの入出力を規定する物と言えるでしょう。 インターフェースの導入 クラスは継承(extends)しますが、インターフェースは実装(implements)します。
インターフェースを取り込んだクラスの宣言は以下の様に行います。
public class 此から作るクラス名 extends スーパークラス名 implements インターフェース名 |
| 例: |
public class HelloGui extends Frame implements
MouseListener{
:
:
} | ドキュメントの一覧でのインターフェースの表示は、斜字体で描かれて区別出来る様になっています。
クラスとは作りが多少異なっています。 インターフェースのメソッド インターフェースをimplementsしたクラスでは、インターフェースで規定されているメソッドは、必ず全てオーバーライドしなければなりません。 戻る |