C#中的多態(tài)性概念具體是什么,很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元陽高做網(wǎng)站,已為上家服務(wù),為陽高各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575相信大家都對面向?qū)ο蟮娜齻€(gè)特征封裝、繼承、多態(tài)很熟悉,每個(gè)人都能說上一兩句,但是大多數(shù)都僅僅是知道這些是什么,不知道CLR內(nèi)部是如何實(shí)現(xiàn)的,所以本篇文章主要說說多態(tài)性中的一些概念已經(jīng)內(nèi)部實(shí)現(xiàn)的機(jī)理。
首先解釋下什么叫多態(tài):同一操作作用于不同的對象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果,這就是多態(tài)性。換句話說,實(shí)際上就是同一個(gè)類型的實(shí)例調(diào)用"相同"的方法,產(chǎn)生的結(jié)果是不同的。這里的"相同"打上雙引號是因?yàn)檫@里的相同的方法僅僅是看上去相同的方法,實(shí)際上它們調(diào)用的方法是不同的。
說到多態(tài),我們不能免俗的提到下面幾個(gè)概念:重載、重寫、虛方法、抽象方法以及隱藏方法。下面就來一一介紹他們的概念。
1、重載(overload):在同一個(gè)作用域(一般指一個(gè)類)的兩個(gè)或多個(gè)方法函數(shù)名相同,參數(shù)列表不同的方法叫做重載,它們有三個(gè)特點(diǎn)(俗稱兩必須一可以):
方法名必須相同
參數(shù)列表必須不相同
返回值類型可以不相同
例如:
publicvoidSleep()
{
Console.WriteLine("Animal睡覺");
}
publicintSleep(inttime)
{
Console.WriteLine("Animal{0}點(diǎn)睡覺",time);
returntime;
}
2、重寫(override):子類中為滿足自己的需要來重復(fù)定義某個(gè)方法的不同實(shí)現(xiàn),需要用override關(guān)鍵字,被重寫的方法必須是虛方法,用的是virtual關(guān)鍵字。它的特點(diǎn)是(三個(gè)相同):
相同的方法名
相同的參數(shù)列表
相同的返回值
3、虛方法:即為基類中定義的允許在派生類中重寫的方法,使用virtual關(guān)鍵字定義。如:
publicvirtualvoidEatFood()
{
Console.WriteLine("Animal吃東西");
}
注意:虛方法也可以被直接調(diào)用。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,的支持。