最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#中overrid和new修飾符有什么不同

 更新時(shí)間:2018年02月11日 16:44:44   作者:藍(lán)月夜  
在C#的繼承中嘗嘗會用到相關(guān)的修飾詞:override和new。這兩個(gè)修飾符都可以在新的子類中,重寫同名的父類方法。下面通過本文給大家介紹C#中overrid和new修飾符的區(qū)別,感興趣的朋友一起看看吧

在C#的繼承中嘗嘗會用到相關(guān)的修飾詞:override和new。這兩個(gè)修飾符都可以在新的子類中,重寫同名的父類方法。

    override: 擴(kuò)展或修改繼承的方法、屬性、索引器或事件的抽象或虛擬實(shí)現(xiàn)需要使用到。

    new:在用作聲明修飾符時(shí),new 關(guān)鍵字可以顯式隱藏從基類繼承的成員。 隱藏繼承的成員時(shí),該成員的派生版本將替換基類版本。

以上是這兩個(gè)修飾符的解釋。對于這兩者之間的區(qū)別之類的說法,其實(shí)網(wǎng)上找到的有很多,大多都是些概念性的東西。我這里主要是對于,自己測試的代碼和大家分享下。

using System;
public class BaseClass{
 public virtual void ShowA(){
  Console.WriteLine("A");
 }
 public void ShowB(){
  Console.WriteLine("B");
 }
 public void ShowAB(){
  ShowA();
  ShowB();
 }
}
public class TestClass:BaseClass{
 public override void ShowA(){
  Console.WriteLine("AA");
 }
 public new void ShowB(){
  Console.WriteLine("BB");
 }
}
public class Example
{
  public static void Main()
  {
   TestClass test = new TestClass();
   test.ShowA();
   test.ShowB();
   test.ShowAB();
   BaseClass test1 = new TestClass();
   test.ShowA();
   test.ShowB();
   test.ShowAB();
   Console.ReadLine();
   Console.WriteLine("運(yùn)行結(jié)束");
  }
}

輸出結(jié)果如下:

可以看出,override相當(dāng)于修改的父類的方法,對父類方法進(jìn)行了重寫。在父類方法中調(diào)用時(shí),同樣也是會調(diào)用到這個(gè)已經(jīng)重寫過得類。override重寫的是父類地址下的方法實(shí)現(xiàn)信息。

對于new,對父類中的方法沒有產(chǎn)生影響,當(dāng)調(diào)用父類方法時(shí),還是會執(zhí)行父類的方法。調(diào)用子類方法時(shí),則調(diào)用子類方法。只是方法的名字相同,從而造成了子類對父類的方法造成了一種隱藏的特性。new相當(dāng)于重新開辟了新的方法實(shí)現(xiàn)位置,子類與父類方法的地址是不同的。

總結(jié)

以上所述是小編給大家介紹的C#中overrid和new修飾符有什么不同,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評論

景泰县| 岗巴县| 额济纳旗| 贡觉县| 大庆市| 澜沧| 隆尧县| 天门市| 青海省| 义乌市| 修文县| 神农架林区| 绥阳县| 陆川县| 赣州市| 抚顺市| 宁晋县| 获嘉县| 辽阳县| 从江县| 澄城县| 高要市| 庆元县| 万盛区| 商丘市| 屏边| 南乐县| 新龙县| 五家渠市| 秭归县| 黔江区| 黔西县| 库尔勒市| 高州市| 绵阳市| 伊川县| 潜江市| 普安县| 高州市| 巴彦县| 青冈县|