つまり見方を変えると・・・スレッドやGUI部品クラスなど、Java APIパッケージのクラスを継承するときは利用できない。
しかしポリモルフィズムを利用するだけなら少なくとも、「抽象メソッド」だけあれば成立する
そこでこれを解決するために
オブジェクト指向技法の一つ『実装 ーインタフェイスー 』を紹介する
■基本構成
/*インタフェイス側*/
アクセス修飾子 interface インタフェイス名{
抽象メソッド
}
/*実装クラス側*/
アクセス修飾子 class クラス名 implements インタフェイス名{
/*省略*/
}
インタフェイスの「interface」というのはインタフェイスを表す修飾子です
■特徴
実際に記述する方法は継承と大体似ていますが以下の制約がありインタフェイスの魅力ともいえます
抽象クラスの場合、多重継承ができない時点で実装できる抽象メソッドはクラス内に限定される。
インタフェイスの場合、複数実装することで実装するメソッドの組合せにより実現できる処理の可能性が広がるがすべて実装する観点から複数実装しすぎると必要ない抽象メソッドも記述しなければならない欠点がある
どちらが抽象メソッドのり利用として便利かは判断できないところだがインタフェイスは配列宣言が可能なことから汎用性が高い
またJavaAPIの中にはインタフェイスがおおくてGUI処理で必須スキルなので、使い方だけは理解してほしい(java.awt.Eventパッケージが中心)
APIのインタフェイスは2~4メソッドがほとんどであり実装のパターンもあるていど確立しており複数実装することがほとんどないため実装も基本に忠実にといった感じ。
作成に関しては抽象メソッド2つ程度を目安にしたほうがよい
■サンプル
前回のポリモルフィズムの抽象クラスをインタフェイスに変更して実行結果が同じになれば実装完了です
前回のサンプルコード