////////////////////////////////////////////////////////////////////////////////
//  << j252f.java >>
//
//  クラス(5):インターフェース(2つのインターフェースの実装、多態性)
//
//  2つのインターフェースの多態性を確認する。
//
//  (1)インターフェース(intf1)の定義。
//  (2)インターフェース(intf2)の定義。
//  (3)インターフェース(intf1)の実装。
//  (4)インターフェース(intf2)の実装。
//  (5)オブジェクトobj1の作成。
//  (6)インターフェース(intf1)内定数s1の参照。
//  (7)インターフェース(intf2)内定数s2の参照はできない。
//  (8)インターフェース(intf1)内メソッド(m1)の呼び出し。
//  (9)obj1.m2(); クラス(C)で定義したメソッド(m2)の呼び出しはできない。
//
///////////////////////////////////////////////////////////////////////////////

interface intf1 { //(1)
  String s1 = "インターフェース(intf1)内メッセージ";
  void m1(); 
}
interface intf2 { //(2)
  String s2 = "インターフェース(intf2)内メッセージ";
  void m2(); 
}

class C implements intf1,intf2 { 
  public void m1() { //(3)
    System.out.println("クラス(C)で実装されたメソッド(m1)");
  }
  public void m2() { //(4)
    System.out.println("クラス(C)で実装されたメソッド(m2)");
  }
}

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

    // オブジェクトobj1の作成。
    intf1 obj1 = new C(); //(5)

    System.out.println("(6)obj1.s1 =" + obj1.s1); //(6)

    System.out.println("(7)obj1.s2 は、エラー"); //(7)

    System.out.print("(8)obj1.m1():"); obj1.m1(); //(8)

    System.out.println("(9)obj1.m2()は、エラー"); //(9) 

  }

}
実行結果
% javac j252f.java
% java j252f
(6)obj1.s1 =インターフェース(intf1)内メッセージ
(7)obj1.s2 は、エラー
(8)obj1.m1():クラス(C)で実装されたメソッド(m1)
(9)obj1.m2()は、エラー