通过虚方法实现方法重写-多态
生活随笔
收集整理的這篇文章主要介紹了
通过虚方法实现方法重写-多态
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
方法表:
方法槽:
在一個類里邊可能有一些成員和一些方法,一個類里有專門的地址,記錄方法表的地址,根據方法表找到方法 當子類繼承了父類以后,會拿到父類的方法表,有一個方法槽。
當子類重寫父類的方法以后,子類重寫了一份父類的方法。如果重寫了,會從槽里找重寫后的方法,this點方法,指向重寫后的方法,base點方法,調用的是父類的方法。
雖然是子類如果沒有重寫,依然還是調用父類的方法。
public class Person{public int Id { get; set; }public string Name { get; set; }public virtual void sayHi(){Console.WriteLine("地球人");}}public class Chinese : Person{public override void sayHi(){Console.WriteLine("中國");}}public class America : Person{public override void sayHi(){Console.WriteLine("美國");}}
方法槽:
在一個類里邊可能有一些成員和一些方法,一個類里有專門的地址,記錄方法表的地址,根據方法表找到方法 當子類繼承了父類以后,會拿到父類的方法表,有一個方法槽。
當子類重寫父類的方法以后,子類重寫了一份父類的方法。如果重寫了,會從槽里找重寫后的方法,this點方法,指向重寫后的方法,base點方法,調用的是父類的方法。
雖然是子類如果沒有重寫,依然還是調用父類的方法。
public class Person{public int Id { get; set; }public string Name { get; set; }public virtual void sayHi(){Console.WriteLine("地球人");}}public class Chinese : Person{public override void sayHi(){Console.WriteLine("中國");}}public class America : Person{public override void sayHi(){Console.WriteLine("美國");}}
?
轉載于:https://www.cnblogs.com/xiaoyueryeah/p/8427954.html
總結
以上是生活随笔為你收集整理的通过虚方法实现方法重写-多态的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 楚留香手游攻略
- 下一篇: TFBOYS饭票上线引热议,骗局之外,区