はい。そして、ポリモーフィズムを発見しました。ポリモーフィズムとは、オブジェクトのようなメソッドを呼び出すだけでon_Activation
(現在のオブジェクトが呼び出されたthis
か、他のオブジェクトが呼び出されたかに関係なく)、どのバージョンon_Activation
を意味するかを指定する必要がないことを意味します。のどのバージョンが実際に呼び出されるかを決定するのは、実行時のオブジェクトの実際の型です。on_Activation
Thomas が指摘したように、このように動作するメソッドはvirtualと呼ばれます。C# では、すべての抽象メソッドは仮想です。したがって、仮想メソッドは、実行時にさまざまなもの (さまざまなメソッド本体) をポリモーフィックに参照できる名前、シンボルです。
どのような魔法が使われているのか知りたい方は仮想法表で詳細を確認してください。基本的に、 のようなすべての仮想メソッド名は、このクラスの th 仮想メソッドである のon_Activation
ようなインデックスとして変換されます。すべての非抽象クラスは、すべての仮想メソッド本体が指定されたテーブルを提供します。したがって、オブジェクトに対する呼び出しは、そのオブジェクトのクラスの仮想メソッド テーブルの th エントリへの呼び出しとして変換されます。n
n
on_Activation
n