////////////////////////////////////////////////////////////////////////////////
//  << j241b.java >>
//
//  クラス(4):継承(フィールド)
//
//  フィールドの継承を確認する。
//
//   フィールド変数を参照すると、自分のクラスから探し、もしなければ親クラスを探す。
//  そこにもなければ、そのまた親クラスを探すことを見つかるまで続ける。
//
//  (1)祖先クラスのインスタンス変数。
//  (2)祖先クラスのクラス変数。
//  (3)子クラスChildのオブジェクトobjの生成。
//  (4)祖先クラスで定義したインスタンス変数paの参照。
//  (5)祖先クラスで定義したクラス変数pbの参照。
//
///////////////////////////////////////////////////////////////////////////////

// 祖先クラスの定義。
class Ancestor {
  int aa = 111; //(1)        
  static int ab = 222; //(2)
}

// 親クラスの定義。
class Parent extends Ancestor { 
  // 内容なし。
}

// 子クラスの定義。
class Child extends Parent { 
  // 内容なし。
}

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

    Child obj = new Child(); //(3)
   
    System.out.println("(4)obj.aa = " + obj.aa); //(4)

    System.out.println("(5)obj.ab = " + obj.ab); //(5)
    System.out.println("(5)Child.ab = " + Child.ab); //(5)

  }

}
実行結果
% javac j241b.java
% java j241b
(4)obj.aa = 111
(5)obj.ab = 222
(5)Child.ab = 222