×
継承とポリモーフィズム

もう少し詳しく

ポリモーフィズムの動作原理を支えているのが「動的バインディング(Dynamic Binding / 遅延結合)」です。 コンパイル時点では「Shape 型の draw() が呼ばれる」ことしか決まっていませんが、プログラム実行時(ランタイム)にヒープ上の実際のインスタンス型が判定され、オーバーライドされた適切な子クラスのメソッドへと動的に実行ルートが接続されます。 ポリモーフィズムを適用する際、変数の型(型アノテーション)によって「呼び出し可能なメソッドの範囲(アクセスできる限界)」が決定され、オブジェクトの実体(インスタンス)によって「実際に実行される処理の中身」が決定されるという2段階のルールを理解することが極めて重要です。

試験でのポイント