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

C#中重載重寫和覆蓋的定義與區(qū)別

 更新時間:2018年10月25日 11:41:41   作者:Czhenya  
今天小編就為大家分享一篇關(guān)于C#中重載重寫和覆蓋的定義與區(qū)別,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

一、重載

  1、重載示意

   重載(Overload)是重新加載的意思,指的是同一個類中同名,但是參數(shù)列表不同的方法組(返回值不能區(qū)別函數(shù)是否重載),重載沒有關(guān)鍵字。通俗點說重載是對內(nèi)存中同一個類中的函數(shù)或方法進(jìn)行重新加載的意思。

  2、發(fā)生條件

   必須發(fā)生在一個類中,函數(shù)名相同,參數(shù)類型或者個數(shù)不同構(gòu)成重載,與返回類型無關(guān)。

如:

Public class Name 
{ 
  Public string GetName(string username) 
  { 
    Return username; 
  } 
Public int GetName(int usercount) 
  { 
    Return usercount; 
  } 
}

二、重寫

   1、示意

    重寫(Override)指子類修改父類中某個函數(shù)的函數(shù)體,需要重寫的父類中的函數(shù)必須是由virtual、abstract 或override標(biāo)注的,不能重寫非虛方法或靜態(tài)方法。

    Override是在繼承的時候,如果你寫的函數(shù)與要繼承的函數(shù)函數(shù)特征(函數(shù)特征包括函數(shù)名,參數(shù)的類型和個數(shù))相同,那么,加上這個關(guān)鍵字,在使用這個子類的這個函數(shù)的時候就看不見父類(或超類)的函數(shù)了,它被覆蓋掉了。

   2、發(fā)生條件

    必須發(fā)生在基類和派生類中,基類函數(shù)必須用virtual、abstract 或override修飾,派生類用override修飾。

如:

 class Program 
  { 
    static void Main(string[] args) 
    { 
      oc oa=new ob(); 
      oa.b(1, 2);  //輸出結(jié)果為fdfdf 
    } 
    public class oc 
    { 
      private int a; 
     //封裝 
      public int geta 
      { 
        get { return a; } 
      } 
      public int seta 
      { 
        set { a = value; } 
      } 
     //函數(shù)b 
      public virtual int b(int c, int e) 
      { 
        Console.WriteLine("{0}+{1}={2}", c, e, c + e); 
        return c + e; 
      } 
    } 
    //派生類ob,基類oc 
    public class ob : oc 
    { 
    //重寫基類中的函數(shù)b 
      public override int b(int c,int e) 
      { 
        Console.WriteLine("fdfdf"); 
        return c; 
      }  
    } 
}

三、覆蓋

   1、示意

    覆蓋指重新定義子類中與父類具有相同函數(shù)特征的的函數(shù)體。子類中有一函數(shù)和父類中函數(shù)的函數(shù)特征相同,但函數(shù)體不同,稱為覆蓋。這種覆蓋又稱為隱藏,是隱藏父類中相同的函數(shù),并沒有進(jìn)行重寫。

   2、發(fā)生條件

   在子類中寫一個和基類一樣名字(參數(shù)不同也算)的非虛函數(shù),會讓基類中的函數(shù)被隱藏,編譯后會提示要求使用New關(guān)鍵字。

如:

 class Program 
  { 
    static void Main(string[] args) 
    { 
      oc oa=new ob(); 
      oa.b(1, 2); //輸出結(jié)果為1+2=3 
    } 
    public class oc 
    { 
      private int a; 
    //封裝 
      public int geta 
      { 
        get { return a; } 
      } 
      public int seta 
      { 
        set { a = value; } 
      } 
    //函數(shù)b 
      public int b(int c, int e) 
      { 
        Console.WriteLine("{0}+{1}={2}", c, e, c + e); 
        return c + e; 
      } 
    } 
  //派生類ob,基類oc 
    public class ob : oc 
    { 
     //覆蓋,隱藏基類中的函數(shù)b 
      public new int b(int c,int e) 
      { 
        Console.WriteLine("fdfdf"); 
        return c; 
      }  
    } 
}

重寫(Override)的兩個函數(shù)的函數(shù)特征相同,應(yīng)用在子類和父類中,會重寫父類函數(shù);

重載(Overload)的兩個函數(shù)的函數(shù)名雖然相同,但函數(shù)特征不同,應(yīng)用在同一類中;

覆蓋(new)兩個函數(shù)的函數(shù)名一定相同,但函數(shù)特征可相同也可不相同,應(yīng)用在子類和父類中,會隱藏父類同名函數(shù)。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • C#中時間的幾種格式轉(zhuǎn)換方法

    C#中時間的幾種格式轉(zhuǎn)換方法

    有時候我們要對C#時間進(jìn)行轉(zhuǎn)換,達(dá)到不同的顯示效果,這里簡單介紹下,方便需要的朋友
    2013-09-09
  • C#中委托、事件和回調(diào)的使用及說明

    C#中委托、事件和回調(diào)的使用及說明

    這篇文章主要介紹了C#中委托、事件和回調(diào)的使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 使用C#對JSON進(jìn)行序列化和反序列化處理的兩種方法

    使用C#對JSON進(jìn)行序列化和反序列化處理的兩種方法

    本指南探討了如何使用 C# 編程語言進(jìn)行 JSON 序列化和反序列化,我們將介紹 .NET 生態(tài)系統(tǒng)中可用的兩個本機選項,即命名空間和廣泛使用的 Newtonsoft.Json 庫(也稱為 Json.NET),需要的朋友可以參考下
    2024-06-06
  • c# 委托的本質(zhì)是什么

    c# 委托的本質(zhì)是什么

    這篇文章主要介紹了c# 委托的本質(zhì)是什么,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C#并行編程之PLINQ(并行LINQ)

    C#并行編程之PLINQ(并行LINQ)

    這篇文章介紹了C#并行編程之PLINQ(并行LINQ),文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#基于XNA生成隨機顏色的方法

    C#基于XNA生成隨機顏色的方法

    這篇文章主要介紹了C#基于XNA生成隨機顏色的方法,涉及XNA Color類的使用技巧,需要的朋友可以參考下
    2015-06-06
  • C#獲取應(yīng)用程序路徑或Web頁面目錄路徑

    C#獲取應(yīng)用程序路徑或Web頁面目錄路徑

    這篇文章介紹了C#獲取應(yīng)用程序路徑或Web頁面目錄路徑的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#程序調(diào)用C++動態(tài)庫(dll文件)遇到的坑及解決

    C#程序調(diào)用C++動態(tài)庫(dll文件)遇到的坑及解決

    這篇文章主要介紹了C#程序調(diào)用C++動態(tài)庫(dll文件)遇到的坑及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 淺析C# 裝箱和拆箱

    淺析C# 裝箱和拆箱

    這篇文章主要介紹了C# 裝箱和拆箱的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 一文弄懂C#淺克隆與深克隆

    一文弄懂C#淺克隆與深克隆

    在C#中,淺克隆和深克隆是兩種常見的對象克隆技術(shù),本文主要介紹了C#淺克隆與深克隆,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02

最新評論

五河县| 嘉定区| 姚安县| 民和| 茶陵县| 定远县| 石阡县| 新河县| 兖州市| 封开县| 织金县| 封丘县| 大冶市| 黄石市| 阳原县| 文安县| 调兵山市| 永清县| 冕宁县| 儋州市| 会理县| 得荣县| 珠海市| 宁津县| 漳浦县| 阿拉善右旗| 汉寿县| 绩溪县| 鱼台县| 罗城| 昌吉市| 丽江市| 永福县| 麻栗坡县| 邵阳县| 肇源县| 北海市| 增城市| 碌曲县| 鄄城县| 临湘市|