類別 yyy 實作介面 iii,並以 .override iii::pqr with instance void yyy::abc() 將介面方法 pqr 映射至實例方法 abc。
.class interface iii {
.method public virtual abstract void pqr() il managed { }
}
.class public yyy implements iii {
.override iii::pqr with instance void yyy::abc()
.method public virtual hidebysig newslot instance void abc() il managed {
ldstr "yyy abc"
call void System.Console::WriteLine(string)
ret
}
}
入口點呼叫 callvirt instance void iii::pqr(),運行時依物件實際類型分派至 yyy.abc。
base.abc() 編譯為 call instance void yyy::abc()(非虛呼叫),直接指定基類方法,不經虛擬分派。base 屬編譯期概念,IL 無對應指令。
newslot:在介面或基類中標記新虛擬槽位,防止名稱衝突。virtual,new 則隱藏基類實現。輸出:yyy abc。