////////////////////////////////////////////////////////////////////////////////
//  << j253.java >>
//
//  クラス(5):インターフェース(マーカーインターフェース)
//
//  あるインターフェースが実装されていたら、あるメソッドを実行するという
//  ような処理を行う時に、内容が空のインターフェースを使う。
//  このようなインターフェースをマーカーインターフェースという。
//
//  (1)マーカーインターフェースintfの定義。
//  (2)マーカインターフェースintfを実装するクラスC1の定義。
//  (3)マーカインターフェースintfを実装しないクラスC2の定義。
//  (4)クラスC1のオブジェクトobj1の作成。
//  (5)クラスC2のオブジェクトobj2の作成。
//  (6)オブジェクトobj1にマーカーインターフェースintfが
//     実装されているかいないかの判定。
//  (7)オブジェクトobj2にマーカーインターフェースintfが
//     実装されているかいないかの判定。
//
///////////////////////////////////////////////////////////////////////////////

interface intf { } //(1)

class C1 implements intf { //(2)
  public void m1() {
    System.out.println("クラス(C1)で定義されたメソッド(m1)");
  }
}
class C2 { //(3)
  public void m2() {
    System.out.println("クラス(C1)で定義されたメソッド(m2)");
  }
}

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

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

    //(6)
    if( obj1 instanceof intf ) {
      System.out.println("(6)obj1にはインターフェース(intf)が実装されている");
    } else {
      System.out.println("(6)obj1にはインターフェース(intf)が実装されていない");
    }

    //(7)
    if( obj2 instanceof intf ) {
      System.out.println("(7)obj2にはインターフェース(intf)が実装されている");
    } else {
      System.out.println("(7)obj2にはインターフェース(intf)が実装されていない");
    }

  }

}
実行結果
% javac j253.java
% java j253
(6)obj1にはインターフェース(intf)が実装されている
(7)obj2にはインターフェース(intf)が実装されていない