スーパークラスのコンストラクタに引数がある場合

public abstract class Animal {
 private String name;

 public String getName () {
  return name;
 }
 public Animal (String theName) {
  name = theName;
 }
}

  • サブクラス

public class Monkey extends Animal{

 public Monkey (String name) {
  super(name);
 }
}

  • main

public class MakeMonkey {
 public static void main(String[] args) {
  // 名前"Gonzalez"をパラメータに指定して、コンストラクタを呼出し
  // Monkeyオブジェクトを作成する
  System.out.println(new Monkey("Gonzalez").getName());
 }
}

  • super()を使って、自らのAnimalオブジェクト部分に存在するname変数に値を渡す。
  • この方法ならprivate宣言されたインスタンス変数にも値を渡すことが出来る!!すげー!