オーバーライドの問題 1 | Javaプログラマー資格試験(OCJ-P) WEB講座

Javaプログラマー資格試験(OCJ-P) WEB講座

Javaプログラマー資格(OCJ-P)を学習するブログです。

OCJ-P・Javaプログラマー資格をとりたい。
Javaプログラミングの入門者・初心者。

そんなあなたに、Javaプログラマー資格の取得に役立つ本質的な知識を、
分かりやすく解説していきます。

 お久しぶりです。
引越しをして、家具を揃えたりして、忙しかったです。
GWには全く勉強できませんでした。

6月中の合格を目指して、勉強再開しますか!

 OCJ-Pでは、オーバーライド関連は嫌と言うほど出題されます。
基本的なことを確実に押さえておくことが大事ですね。

一番簡単なオーバーライドは次のソースです。

//START
public class A {
 protected void test(){
   System.out.println("A");
 }
}

public class B extends A{
 public static void main(String[] args){
  A a = new B();
  a.test();
 }
 void test(){
   System.out.println("B");
 }
}
//END

実行したときの結果は、AかBのどちらが出力されますか?





もちろん、Bですね。
ポイントは↓↓
A a = new B();
このところですね。

変数 a は、型はAですが、Bとしての振る舞いをします。
言い換えれば、箱はAですが、中身はBなんです。


だから、Bのtest()が呼ばれます。
よって、Bが出力されるんですね。