中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

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

一、重載

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了汾陽免費(fèi)建站歡迎大家使用!

  1、重載示意

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

  2、發(fā)生條件

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

如:

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

二、重寫

   1、示意

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

    Override是在繼承的時(shí)候,如果你寫的函數(shù)與要繼承的函數(shù)函數(shù)特征(函數(shù)特征包括函數(shù)名,參數(shù)的類型和個(gè)數(shù))相同,那么,加上這個(gè)關(guān)鍵字,在使用這個(gè)子類的這個(gè)函數(shù)的時(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ā)生條件

   在子類中寫一個(gè)和基類一樣名字(參數(shù)不同也算)的非虛函數(shù),會(huì)讓基類中的函數(shù)被隱藏,編譯后會(huì)提示要求使用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)的兩個(gè)函數(shù)的函數(shù)特征相同,應(yīng)用在子類和父類中,會(huì)重寫父類函數(shù);

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

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

總結(jié)

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

當(dāng)前文章:C#中重載重寫和覆蓋的定義與區(qū)別
本文URL:http://m.rwnh.cn/article48/pdidep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、網(wǎng)站改版、建站公司自適應(yīng)網(wǎng)站、網(wǎng)頁設(shè)計(jì)公司、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
西峡县| 囊谦县| 梁山县| 西和县| 银川市| 荃湾区| 山阴县| 甘孜县| 清流县| 基隆市| 门头沟区| 天镇县| 云霄县| 泗阳县| 兰西县| 运城市| 巴南区| 通榆县| 普兰店市| 西丰县| 抚州市| 英德市| 大悟县| 汶川县| 二手房| 招远市| 南江县| 米泉市| 合作市| 花莲县| 沂源县| 鄂州市| 平山县| 五指山市| 资兴市| 博客| 满城县| 阜康市| 唐海县| 盐城市| 北流市|