您好,登錄后才能下訂單哦!
C#中的多態性概念具體是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
相信大家都對面向對象的三個特征封裝、繼承、多態很熟悉,每個人都能說上一兩句,但是大多數都僅僅是知道這些是什么,不知道CLR內部是如何實現的,所以本篇文章主要說說多態性中的一些概念已經內部實現的機理。
首先解釋下什么叫多態:同一操作作用于不同的對象,可以有不同的解釋,產生不同的執行結果,這就是多態性。換句話說,實際上就是同一個類型的實例調用"相同"的方法,產生的結果是不同的。這里的"相同"打上雙引號是因為這里的相同的方法僅僅是看上去相同的方法,實際上它們調用的方法是不同的。
說到多態,我們不能免俗的提到下面幾個概念:重載、重寫、虛方法、抽象方法以及隱藏方法。下面就來一一介紹他們的概念。
1、重載(overload):在同一個作用域(一般指一個類)的兩個或多個方法函數名相同,參數列表不同的方法叫做重載,它們有三個特點(俗稱兩必須一可以):
方法名必須相同
參數列表必須不相同
返回值類型可以不相同
例如:
publicvoidSleep()
{
Console.WriteLine("Animal睡覺");
}
publicintSleep(inttime)
{
Console.WriteLine("Animal{0}點睡覺",time);
returntime;
}
2、重寫(override):子類中為滿足自己的需要來重復定義某個方法的不同實現,需要用override關鍵字,被重寫的方法必須是虛方法,用的是virtual關鍵字。它的特點是(三個相同):
相同的方法名
相同的參數列表
相同的返回值
3、虛方法:即為基類中定義的允許在派生類中重寫的方法,使用virtual關鍵字定義。如:
publicvirtualvoidEatFood()
{
Console.WriteLine("Animal吃東西");
}
注意:虛方法也可以被直接調用。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。