首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 到 IL 深度解析:第4章 關鍵字與操作符 (上)(11) - 繼承基礎與編譯器決策

     編輯:關於C語言

extends 關鍵字與繼承

IL 使用 extends 建立繼承關係(源自 Java/IL,非 C# 專有)。編譯器根據靜態類型決定方法呼叫的前綴類別(如 yyy::abc 或 xxx::abc),此決策發生在編譯期,不反映在 IL 指令中。

無虛擬方法的繼承調用

// C# 代碼
class yyy { public void abc() { Console.WriteLine("yyy abc"); } }
class xxx : yyy { }

IL:入口點 newobj instance void xxx::.ctor() 建立 xxx 實例,但呼叫 call instance void yyy::abc(),因 xxx 未覆寫 abc,直接繼承基類實現。輸出 yyy abc。

編譯器角色

編譯器負責解析方法解析規則(優先找派生類、再找基類),並發出對應的 call 或 callvirt。IL 本身不包含解析邏輯,僅執行指令。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved