【タイトル】 インターフェース
「 クラス に含まれる メソッド の具体的な処理内容を記述せず、変数とメソッドの型のみを定義したもの 」
【説明】
インターフェースとは
【使用場面】
- ユーザ・インターフェース (UI)
- グラフィカル・ユーザ・インターフェース (GUI)
- コンソールユーザ・インタフェース (CUI)
- アプリケーションプログラミングインターフェース (API)
APIを例に上げた場合の例
- ユーザーが 商品名を入力して検索
- アプリ側が 仲介役の API にリクエストを送る
- API がリクエストに会った内容をレスポンスする。
以上のように、インターフェースは「 何かと何かを繋げる架け橋のような役割 」を担っています。
【特徴】
- 実装先のクラスは 必ず [インタフェース]で宣言されているメソッドをオーバーライドし、
- オーバーライドしたメソッドの実際の処理を記述
- 実装先のクラスはインターフェースに 制御(コントロール)される意味合いを含む
- 実装先のクラスはインターフェースを 複数 実装できる
- 使用目的を明確にて実装内容を絞らないと邪魔になることもある
Javaで使われるインターフェースについて
「 クラス に含まれる メソッド の具体的な処理内容を記述せず、変数とメソッドの型のみを定義したもの 」です。
【説明】
「処理の実装されていない」というのは、 { }(ブロック) 内の処理が未実装 ということです。
Javaのインターフェースの特徴
インターフェースの特徴として以下が挙げられる
- インスタンス変数を持つことが出来ない
- 具象メソッド(抽象メソッドではないメソッド)を実装することができない
- インスタンスフィールドを持たない
- 実装された場合、 インスタンス が生成された場合には抽象メソッドは必ずオーバーライド される必要がある
- フィールド のみ宣言できる
【使用場面】
Javaでは、以下のような不便があります。
ですが、インタフェースをつかうことで
- 多重継承が可能になる。
- 配下メソッドが全部抽象 メソッド である クラス になる。
- それぞれの メソッド は意味的に異なるインターフェースに振り分ける
- 派生 クラス 側で必要な メソッド のみ選択できる
といったことが可能になります。
インターフェースの具体例として、動画の再生プログラムを作るため、インターフェースでプログラムの再生・停止などのメソッドを組み込み、具体的な再生機能は各メソッドに記述します。
【インターフェースの定義】
interface インターフェース名{
}
【サンプルコード】
public interface インターフェース名 {
// 処理が実装されていないメソッド
public void sample();
}
【インターフェースの実装】
「インターフェースの実装」とは、、、
class クラス名 implements インターフェース名 {
}