演習課題「スーパークラスのインスタンスメソッドを呼び出してみよう」
右側のコードエリアには、 Fruits
クラス、それを継承するPeach
クラスが定義されています。 Fruits
クラスには、season
というメソッドが定義されており、Peach
クラスでオーバーライドされています。Peach
クラスのtest
メソッドにコードを追加して、Fruits
クラスのseason
メソッドを呼び出してください。
期待する出力値
all season
#14:super
このチャプターでは、superについて学習します。
スーパークラスのインスタンス変数の操作は、thisをスーパークラスの型にキャストすることでも実現できます。public class Main {
public static void main(String... args) {
(new WhiteLion()).test();
}
}
class Animal {
public String japaneseName = "動物";
}
class Lion extends Animal {
public String japaneseName = "ライオン";
}
class WhiteLion extends Lion {
public String japaneseName = "ホワイトライオン";
void test() {
System.out.println(this.japaneseName);
System.out.println(super.japaneseName);
System.out.println(((Lion) this).japaneseName);
System.out.println(((Animal) this).japaneseName);
}
}