////////////////////////////////////////////////////////////////////////////////
//  << j252b.java >>
//
//  クラス(5):インターフェース(2つのクラスへの実装)
//
//  2つのクラスへの実装を確認する。
//
//  (1)インターフェース(intf)の定義。
//  (2)インターフェース(intf)の実装。
//  (3)インターフェース(intf)の実装。
//  (4)クラス(C1)のオブジェクトの作成。
//  (5)クラス(C2)のオブジェクトの作成。
//  (6)インターフェース内定数obj1.msg, obj2.msgの参照。
//  (7)インターフェース内メソッドobj1.mi(), obj2.mi()の呼び出し。
//
///////////////////////////////////////////////////////////////////////////////

interface intf { //(1)
  String msg = "interface内定数";
  void mi(); 
}

class C1 implements intf {
  public void mi() { //(2)
    System.out.println("クラス(C1)で実装されたインターフェイス内メソッド(mi)");
  }
}

class C2 implements intf { //(3)
  public void mi() {
    System.out.println("クラス(C2)で実装されたインターフェイス内メソッド(mi)");
  }
}

class j252b {
  public static void main(String args[]) {

    C1 obj1 = new C1(); //(4)
    C2 obj2 = new C2(); //(5)

    System.out.println("(6)obj1.msg:" + obj1.msg); //(6)
    System.out.println("(6)obj2.msg:" + obj2.msg); //(6)

    System.out.print("(7)obj1.mi():"); obj1.mi(); //(7)
    System.out.print("(7)obj2.mi():"); obj2.mi(); //(7)

  }

}
実行結果
% javac j252b.java
% java j252b
(6)obj1.msg:interface内定数
(6)obj2.msg:interface内定数
(7)obj1.mi():クラス(C1)で実装されたインターフェイス内メソッド(mi)
(7)obj2.mi():クラス(C2)で実装されたインターフェイス内メソッド(mi)