継承したクラスのオブジェクトを扱う場合、通常は下記のように利用します。}}上記のようにオブジェクトを作成するクラスの変数を使うのですが、クラスを継承した場合、スーパークラスの変数に対してサブクラスのオブジェクトを割り当てることが出来ます。サブクラス();具体的には下記のようになります。}}スーパークラスの変数にサブクラスのオブジェクトを格納した場合、このオブジェクトに対して実行できるメソッドはスーパークラスで定義されているものだけになります。サブクラスでオーバーライドされているのであれば、サブクラスの方のメソッドが呼び出されます。先ほどのサンプルで言えば、サブクラスで新たに追加された「dispVersion」メソッドはスーパークラスの変数に格納されたオブジェクトからは呼び出すことが出来ませんが、スーパークラスで定義されサブクラスでオーバーライドされている「dispName」メソッドは呼び出すことが出来ます。実際に試してみましょう。}}実際に実行してみると下記のようになります。上記のように、オーバーライドされたメソッドを呼び出す場合、サブクラスの方で定義されたメソッドが呼び出されます。スーパークラス変数を使う理由では何故このようなことをするかですが、同じスーパークラスから複数の種類のサブクラスを作成した場合、スーパークラスの変数を使えばどのサブクラスのオブジェクトでも同じように扱うことが出来るためです。サブクラスの変数名をそれぞれ使った場合、あるサブクラスの変数に別のサブクラスのオブジェクトを格納することは出来ませんので、それぞれ別々に扱わなければなりません。}}これに対してスーパークラスの変数を使う場合には、スーパークラスの変数にはどのサブクラスのオブジェクトでも格納できますので、統一した形で扱うことが出来るようになります。}}このように同じ型の変数に色々なサブクラスのオブジェクトを格納することで、サブクラスの違いを気にする事なくプログラムを記述できます。スーパークラスの変数に格納したオブジェクトから利用できるのはスーパークラスで定義されたメソッド(及びサブクラスでオーバーライドされたメソッド)だけですので、どのサブクラスでも同じメソッド名を使うことができるわけです。このように扱うことができるのが継承をつかったプログラミングのメリットの1つです。簡単なサンプルで試して見ましょう。}}実際に実行してみると下記のようになります。IKURA初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を多数行っています。