溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C#中 New關(guān)鍵字的作用是什么

發(fā)布時(shí)間:2021-07-07 16:44:23 來(lái)源:億速云 閱讀:283 作者:Leah 欄目:編程語(yǔ)言

C#中 New關(guān)鍵字的作用是什么,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

一、在C#中,new這個(gè)關(guān)鍵字使用頻率非常高,主要有3個(gè)功能:

1)作為運(yùn)算符用來(lái)創(chuàng)建一個(gè)對(duì)象和調(diào)用構(gòu)造函數(shù)。

2)作為修飾符。

3)用于在泛型聲明中約束可能用作類型參數(shù)的參數(shù)的類型。

在本文中,只具體介紹new作為修飾符的作用,在用作修飾符時(shí),C# New關(guān)鍵字可以在派生類中隱藏基類的方法,也就說(shuō)在使用派生類的方法是調(diào)用的方法是C# New關(guān)鍵字新定義出來(lái)的方法,而不是基類的方法。在不使用C# New關(guān)鍵字來(lái)隱藏基類方法也是可以的,編譯器會(huì)出現(xiàn)一個(gè)警告,提示如果有意去隱藏基類的方法,請(qǐng)使用C# New關(guān)鍵字修飾。

這里有個(gè)注意事項(xiàng)就是New和Override這兩個(gè)關(guān)鍵字是互斥的。不可以同時(shí)使用。

二、 Override關(guān)鍵字主要是提供派生類對(duì)基類方法的新實(shí)現(xiàn),重寫(xiě)的基類方法必須和Override的方法具有相同的簽名,此關(guān)鍵字不可以用于重寫(xiě)非虛方法和靜態(tài)方法,與其配套使用的關(guān)鍵字是Virtual、abstract、Override。與此同時(shí),Override方法還不可以修改Virtual方法的可訪問(wèn)性,Override方法和Virtual方法必須具有相同的訪問(wèn)修飾符,不能使用修飾符 new、static、virtual 或 abstract 來(lái)修改 override 方法。

以下是一個(gè)小demo,展示了new和override的本質(zhì)區(qū)別:

class  Program{  static void Main(string[] args){  contact ct1 = new class2();  contact ct2 = new class2();  ct1.prinf();  ct2.prinf();  }  }  abstract public class contact{  public virtual void prinf(){  Console.WriteLine ("這是虛方法");  }  }  public class class1 : contact{  public override void prinf(){  Console.WriteLine ("這是新的方法");  }  }  public class class2 : contact{  public new void prinf(){  Console.WriteLine ("這是另一個(gè)新的方法");  }  }

三、Virtual關(guān)鍵字允許在派生類中重寫(xiě)這些對(duì)象,默認(rèn)情況下,方法是非虛擬的,不可以重寫(xiě)非虛方法,virtual關(guān)鍵字不可以與static、abstract、 private、override一起使用。Virtual關(guān)鍵字又是和override緊密不可分的,如果要實(shí)現(xiàn)Virtual方法就必須要使用 override或C# New關(guān)鍵字(new和override產(chǎn)生的機(jī)理不同)。

看完上述內(nèi)容,你們掌握C#中 New關(guān)鍵字的作用是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

new
AI