なぜオブジェクトを上位クラスの型で持つのか? | Javaプログラマー資格試験(OCJ-P) WEB講座

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

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

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

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

 勉強していて分からない点があります。
あるクラスのインスタンスを生成するときに、
そのクラス型ではなくて、上位クラスの型でもつことがあります。

例えば、List型のサンプルでよく見る、
List<String> list = new ArrayList<String>(); や、
Map map = new HashMap(); など。

このとき、listはArrayListのメソッドを使えるし、
mapはHashMapのメソッドを使えます。

しかし・・・
なぜ、上位クラスの型でインスタンスを生成するのでしょうか?
今一番、大きな謎です。

 
 これはポリモーフィズムという、
オブジェクト指向の代表例みたいですね。

業界用語で説明すると、
サブクラスの参照をスーパークラスの参照型変数に格納できる機能。

オブジェクト指向の基本的な機能みたいですね。
私は今日このことを調べていたので、
Sun時代のJavaプログラマー資格(SCJ-P)を持っている、
職場の同僚に質問したところ、
・・・?という答えが返って来ました。

多くのプログラマーが、
そういう状態ではなかろうかと想像します。
それでは応用が効きません。

本講座の読者のあたなは、
本質的なところまでしっかり理解して、
価値の高い人材になりましょうね^^