インターフェース Interface
ハードウェアでインターフェース
回路と回路、機器と機器、人間と機器との間にあるもので信号のやり取りをスムーズにしたり、操作性を向上させるための回路、機器、ソフトウェアなどのこと。
人間と機器の間にある装置やソフトウェアなどのインターフェースをヒューマンインターフェースという。
プログラミングでのインターフェース
オブジェクト指向プログラミングでは動作や振る舞いの名称のみを定義したクラスのこと。動作の名称のみを定義しているので実際の動作は継承したクラスで定義する。それぞれに異なる動作を定義できるので同じ名前の動作だが対象が異なるとその動作の結果が異なることを表現できる。これをポリモーフィズム(多態性)という。
Javaでは次のように表記する。
public interface インターフェース名 {
public abstract void メソッド名();
public static final 型 定数名 = 値;
}
動作を実装するクラスは次のように表記する。予約語implementsを使い、実装するインターフェースを指定する。
public class クラス名 implements インターフェース名{
....
public void 実装するメソッド名(){
実装するコード
}
}
利用例
インターフェースSingerはsing()メソッドを定義していて、それを実装するクラスNishidaToshiyuki?とMatsukenの例。
// インターフェース Singer
public interface Singer {
public abstraact void sing();
}
// インターフェースSingerを実装するクラスNishidaToshiyuki
public class NishidaToshiyuki implements Singer {
public void sing(){
System.out.println("もしも〜、ピアノが弾けたなら...");
}
}
// インターフェースSingerを実装するクラスMatsuken
public class Matsuken implements Singer {
public void sing(){
System.out.println("オ〜レ〜!オ〜レ〜!マツケンサンバ!!");
}
}
// NishidaToshiyuki、Matsukenクラスのオブジェクトを生成し、歌わせる。
public class Singertest {
public static void main(String[] args){
NishidaYoshiyuki nishiyan = new NishidaYoshiyuki();
Matsuken matsuken = new Matsuken();
nishiyan.sing();
matsuke.sing();
}
}
実行すると次のように表示される。
もしも〜、ピアノが弾けたなら... オ〜レ〜!オ〜レ〜!マツケンサンバ!!