オブジェクト参照が基本クラス変数に格納されているときに、オブジェクトが基本クラスメンバーを非表示にしたときに、CLRがメソッド呼び出しを正しくディスパッチする方法を理解しようとしています。
私の混乱のポイントは、実行時に作成されたオブジェクトヘッダーです。ヒープ上のオブジェクトヘッダーには、タイプポインターと同期ブロックインデックスの2つのフィールドがあります。タイプポインタは、クラスのメソッドテーブルを指します。オブジェクト参照が基本クラスであっても、ヒープ上に作成されたオブジェクトは派生クラスです。これにより、ランタイムは派生クラスオブジェクトのメソッドテーブルを使用するようになります。ただし、ランタイムは基本クラスのメンバーを正しく呼び出します。
このシナリオでCLRがメソッドを正しく呼び出す方法として、フローを理解するのを手伝っていただけませんか。