■インターフェイス(interface)構文とは
インターフェイス構文とは、抽象クラス(※)の内容が、抽象メソッドのみの場合、使用することができる構文である。
また、抽象クラスと同様に、インターフェイスも複数のクラスをまとめる型となる。
(※)抽象クラスの使い方の参照先
▼インターフェイス構文の定義方法
interface インターフェイス名{
// ここにメソッドを記入
void メソッド名();
}
// 継承するクラス その1
class クラス名1 implemets インターフェイス名 {
// ここにインターフェイスで定義したメソッドの処理内容を記入
public void メソッド名() {
処理を書く
}
}
// 継承するクラス その2
class クラス名2 implemets インターフェイス名{
// ここにインターフェイスで定義したメソッドの処理内容を記入
public void メソッド名() {
処理を書く
}
}
public class メインクラス{
public static void main(String[] args) {
// インターフェイスを配列でインスタンス
インターフェイス名[] 配列名 = new インターフェイス名[2];
// 配列にクラスをセットする
配列名[0] = new クラス名1();
配列名[1] = new クラス名2();
}
}
インターフェイス構文中に記述されたメソッドについては、abstractを指定しなくても、抽象メソッドとみなされる。
インターフェイスを継承する場合は、implementsを使用する。
■今回実装するプログラムの仕様
インターフェイス構文を使用して、以下の3種類の道順メッセージを表示する。
・右に曲がってください
・左に曲がってください
・直進してください
▼サンプルコード
// 道順を表示するインターフェイスの定義
interface Directions {
// 道順表示メソッド(抽象メソッド)
void ShowDirections();
}
// 右に曲がる指示を表示するクラス
class TurnRight implements Directions{
// 右に曲がる指示を表示するメソッド
public void ShowDirections() {
System.out.println("右に曲がってください");
}
}
// 左に曲がる指示を表示するクラス
class TurnLeft implements Directions{
// 左に曲がる指示を表示するメソッド
public void ShowDirections() {
System.out.println("左に曲がってください");
}
}
// 直進する指示を表示するクラス
class GoStraight implements Directions{
// 直進する指示を表示するメソッド
public void ShowDirections() {
System.out.println("直進してください");
}
}
// メイン処理をするクラス
public class Sample {
public static void main(String[] args) {
// 道順を表示するインターフェイスをインスタンス
Directions[] d = new Directions[3];
// 道順を格納する
d[0] = new TurnRight();
d[1] = new TurnLeft();
d[2] = new GoStraight();
// 要素数分道順を表示する
for(int i = 0; i < d.length; i++) {
d[i].ShowDirections();
}
}
}
▼実行結果
右に曲がってください
左に曲がってください
直進してください