ポリモーフィズムの前提知識

 ポリモーフィズムは多態性、多様性などとも呼ばれます。ポリモーフィズムを実現させるためには次のような特徴を理解しておく必要があります。

 Javaは、クラスを作成すると暗黙のうちにObjectクラスのサブクラスとなります。つまり、Objectクラスのメソッドをどのクラスでも使用することができるわけです。どのようなメンバで構成されているか「Java SE API & ドキュメント」で確認してみましょう。このような仕組みとなっているので、Object型の変数にはどんな種類のオブジェクトでも格納することができます。Object型は汎用型とも言えます。

 次のサンプルでは、車とバスのクラスのオブジェクトをCar型の変数に代入して、動作を確認します。

○ ファイル

 次のようにファイルを作成してください。

ファイル名 Run3.java

サンプルダウンロード

○ プログラム

 次のようにプログラムを記述してください。

  1. public class Run3{
  2.  public static void main(String[] args){
  3.   //Carクラス型の変数を用意
  4.   Car obj;
  5.   //Carオブジェクトを生成
  6.   obj = new Car();
  7.   System.out.println("車のガソリン量:" + obj.getGas() + "L");
  8.   //Busオブジェクトを生成
  9.   obj = new Bus();
  10.   System.out.println("バスのガソリン量:" + obj.getGas() + "L");
  11.  }
  12. }

○ 実行結果

車のガソリン量:20L
バスのガソリン量:100L

○ 解説

 4行目でCarクラス型の変数を宣言しています。そして7行目では、Carオブジェクトを生成して格納しています。ここでの使い方には変わった点はありません。11行目では、Busオブジェクトを生成して、Car型の変数に格納しています。BusクラスはCarクラスを継承しているので、このような記述が可能です。12行目ではガソリン残量を参照しています。Carクラスで定義しているメンバを利用することができます。ただし、Busクラスで定義しているメンバは利用できません。

 このように、一つの変数にいろいろな種類のオブジェクトを格納することができます。これを利用してポリモーフィズムを実現させます。

前へ   次へ