方法表:方法槽:
在乙個類裡邊可能有一些成員和一些方法,乙個類裡有專門的位址,記錄方法表的位址,根據方法表找到方法
當子類繼承了父類以後,會拿到父類的方法表,有乙個方法槽。當子類重寫父類的方法以後,子類重寫了乙份父類的方法。如果重寫了,會從槽裡找重寫後的方法,this點方法,指向重寫後的方法,base點方法,呼叫的是父類的方法。
雖然是子類如果沒有重寫,依然還是呼叫父類的方法。
public
class
person
public
string name
public
virtual
void
sayhi()
}public
class
chinese : person
}public
class
america : person
}
C 通過虛方法實現方法重寫 多型。
class program 希望person存的是哪個類的物件就呼叫哪個類的方法 第一步 將父類中對應方法家virtual關鍵字 變為虛方法 子類可重寫 子類中方法用override關鍵字將父類虛方法重寫 person i say 這句話就體現了多型 public class person publ...
虛方法實現多型
大家都知道物件導向的三大特徵,封裝 繼承 多型,這裡解釋一下多型 同一操作作用於不同的物件,可以有不同的解釋,產生不同的執行結果,這就是多型性。換句話說,實際上就是同乙個型別的例項呼叫 相同 的方法,產生的結果是不同的。這裡的 相同 打上雙引號是因為這裡的相同的方法僅僅是看上去相同的方法,實際上它們...
虛方法重寫
1.例項解析 控制台程式 class program public class badlyconstructedtype this will be overridden in the derived type.public virtual void dosomething public class ...