Java言語入門 〜C言語を学んだ君へ〜
[第9回] 練習問題 第2問解答
第2問解答
第2問解説
抽象クラスを使った「ポリモーフィズム」の理解度を確認する問題です。
特別難しいことはしていませんので、簡単に解説します。
解説
まず、クラスAをクラスBとクラスCが継承しています。
ここで、クラスAは抽象クラスのため、
クラスBとクラスCはprintメソッドをオーバーライドします。
次に、クラスEx09_02のメインメソッドでは、
クラスBのオブジェクトを、クラスAの型にキャストしています。
そして、printメソッドを呼び出します。ここで、重要なことは
キャストを使っても「元のオブジェクトの処理が呼び出される」ということです。
したがって、クラスBとCのオブジェクトに対して、
printメソッドを呼び出したため、それが実行結果に反映されます。