Java -ポリモフィズム-
ポリモフィズム
ポリモフィズムでは、スーパークラスやインタフェースの型で変数を定義し、サブクラスやインタフェースを実装したクラスのインスタンスを参照します。
このため、異なった機能を持つメソッドであっても、同じメソッド名で呼び出して処理を実行することが可能になります。
極端な言い方をすれば、メソッド名を統一にすると呼び出し側が呼び出すオブジェクトについて詳しく知らなくても、呼び出し型さえ知っていればそのオブジェクトを利用することができるということになります。
継承によるポリモフィズムの実現
スーパークラスの参照型変数、配列型変数、引数などで、サブクラスのインスタンスを参照することができます。
これによりポリモフィズムを実現し、効率的なコードの記述が可能になります。
実行されるメソッドの動的なバインディング
ポリモフィズムでは、ある型で宣言された参照型変数は、必ずしもその型と同じ型のインスタンスを参照しているわけではありません。その型のサブクラス、あるいは、インタフェースを実現したクラスのインスタンスを参照することもあります。
どのインスタンスを実行するかは、コンパイル時に静的に決定されるのでなく、実行時に動的に決定されます。これが動的バインディングです。