一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - C# - C#中重載重寫和覆蓋的定義與區(qū)別

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

2022-03-03 13:41Czhenya C#

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

一、重載

  1、重載示意

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

  2、發(fā)生條件

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

如:

?
1
2
3
4
5
6
7
8
9
10
11
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修飾。

如:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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ù),并沒有進行重寫。

   2、發(fā)生條件

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

如:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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í)價值,謝謝大家對服務(wù)器之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

原文鏈接:https://blog.csdn.net/Czhenya/article/details/76092072

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 女教师巨大乳孔中文字幕免费 | 日韩欧免费一区二区三区 | 国产美女操| 好大好爽好硬我要喷水了 | 色综合天天综合网站中国 | 91无套极品外围在线播放 | 国产女乱淫真高清免费视频 | 亚洲精品久久久成人 | 国产精品成人一区二区 | 国产综合亚洲专区在线 | 91精品啪在线观看国产老湿机 | 欧美一级在线 | 亚洲午夜精品久久久久 | 91精品国产色综合久久不卡蜜 | freexxxxxhd张柏芝 | 亚洲天堂中文字幕 | 脱jk裙的美女露小内内无遮挡 | 日韩欧美一区二区三区视频 | 久草青青在线 | 三星w699 | 亚洲欧美综合在线观看 | 国产成人亚洲精品一区二区在线看 | 男人猛激烈吃奶gif动态图 | 青草视频网站 | 高h辣文小说网 烧书阁 | 亚洲成人影院在线 | 91麻豆精品国产自产在线观看 | 久久精品国产色蜜蜜麻豆国语版 | 欧美一区二区三区四区五区六区 | 美女下面揉出水免费视频 | 日本公与妇中文在线 | sedog在线长片 | 亚洲精品第二页 | 国产成年人在线观看 | 国内精品久久久久小说网 | 精品久久久久中文字幕日本 | 亚洲高清视频网站 | 天堂中文在线观看 | 欧美国产日产精品免费视频 | 亚洲欧美天堂综合久久 | 日韩免费视频播放 |