亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#中重載與重寫區(qū)別分析

 更新時(shí)間:2016年02月16日 16:03:44   投稿:lijiao  
這篇文章主要為大家詳細(xì)介紹了C#中重載與重寫的區(qū)別,感興趣的小伙伴們可以參考一下

一、前言
       接觸面向?qū)ο蟮乃枷胍呀?jīng)有一段時(shí)光了,為什么要學(xué)習(xí)面向?qū)ο竽??因?yàn)槊嫦驅(qū)ο缶哂锌蓮?fù)用性、可維護(hù)性、可擴(kuò)展性等優(yōu)點(diǎn)。
        本人之前一直接觸的是VB語(yǔ)言,所以正式接觸面向?qū)ο蟮木幊陶Z(yǔ)言還要從C#開始。前段時(shí)間,剛學(xué)完C#,其中重載、重寫傻傻分不清楚。如今通過查閱資料對(duì)這兩者有了一個(gè)大概的理解,不足之處還請(qǐng)多多指教。
二、定義
        重載:在同一定義域內(nèi)(比如一個(gè)類里面)。方法名相同,參數(shù)個(gè)數(shù)、次序、類型不同。因此重載對(duì)返回值沒有要求,可以相同,也可以不同。但是如果方法名相同,參數(shù)個(gè)數(shù)、次序、類型都相同,而返回值不同,則無法構(gòu)成重載。
       重寫:繼承時(shí)發(fā)生,在子類中重寫定義父類中的方法,子類中的方法和父類中的方法是一樣的。即方法名、參數(shù)的個(gè)數(shù)、次序、類型和返回值都相同。例如父類方法聲明為virtual(虛方法),子類中使用override申明此方法的重寫。
三、示例
1、重載:
       我們建立一個(gè)貓類,在這個(gè)類中構(gòu)造兩個(gè)方法。一個(gè)是帶參數(shù)姓名的方法,另一個(gè)是不帶參數(shù)姓名的方法。這樣當(dāng)我們初始化一個(gè)“貓”的對(duì)象時(shí),就可以選擇給對(duì)象起名或者不起名。從而達(dá)到擴(kuò)展的目的。

2、 重寫:
       比如動(dòng)物都有“叫”的方法。貓和狗是它的子類,貓的叫聲是“喵”,狗的叫聲是“汪”,如何在子類中重寫父類的方法呢?首先在動(dòng)物類中構(gòu)造一個(gè)虛方法。

Class Animal 
{ 
   public virtual string Shout()//注意修飾符中增加了一個(gè)virtual,它表示此方法是虛方法,可以被子類重寫 
   { 
   return ""; 
   } 
} 

         在構(gòu)建貓這個(gè)類時(shí),我們重寫“叫”這個(gè)方法

Class cat:Animail 
{ 
  Public override string Shout() 
  {//關(guān)鍵字override,表示方法重寫 
  string result="喵"; 
  return result; 
  } 
} 

        在構(gòu)建狗這個(gè)類時(shí),我們也重寫“叫”這個(gè)方法

Class Dog:Animal 
{ 
  public override string Shout() 
  { 
   string result="汪"; 
   return result; 
   } 
   
} 

           重寫發(fā)生在父類和子類之間,聲明的是父類,實(shí)例化的是子類。本例子實(shí)現(xiàn)了多態(tài)。
四、小結(jié)

         重載必須發(fā)生在一個(gè)類中,方法名相同,參數(shù)不同。值得注意的是,方法重載必須通過參數(shù)不同來判斷調(diào)用哪個(gè)方法,而不能通過返回值。
         重寫override一般用于接口實(shí)現(xiàn)和繼承類的方法改寫。值得注意的是,被覆蓋的方法不能為private,否則在其子類中只是新定義了一個(gè)方法,并沒有進(jìn)行覆蓋。

以上就是本文的全部?jī)?nèi)容,希望大家對(duì)C#中重載與重寫的異同有所了解,謝謝大家的閱讀。

相關(guān)文章

  • C#中DataTable和List互轉(zhuǎn)的示例代碼

    C#中DataTable和List互轉(zhuǎn)的示例代碼

    很多場(chǎng)景下,我們需要將List轉(zhuǎn)換成為DataTable,本文主要介紹了C#中DataTable和List互轉(zhuǎn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • C#實(shí)現(xiàn)的最短路徑分析

    C#實(shí)現(xiàn)的最短路徑分析

    C#實(shí)現(xiàn)的最短路徑分析,需要的朋友可以參考一下
    2013-03-03
  • C# 讀寫XML(代碼分享)

    C# 讀寫XML(代碼分享)

    本文主要介紹了C# 讀寫XML的相關(guān)知識(shí),具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-03-03
  • c# 在windows中操作IIS設(shè)置FTP服務(wù)器的示例

    c# 在windows中操作IIS設(shè)置FTP服務(wù)器的示例

    這篇文章主要介紹了c# 在windows中操作IIS設(shè)置FTP服務(wù)器的示例,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-03-03
  • 人臉認(rèn)證源碼faceIdentify詳解

    人臉認(rèn)證源碼faceIdentify詳解

    這篇文章主要為大家詳細(xì)介紹了人臉認(rèn)證源碼faceIdentify的相關(guān)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • UGUI實(shí)現(xiàn)隨意調(diào)整Text中的字體間距

    UGUI實(shí)現(xiàn)隨意調(diào)整Text中的字體間距

    這篇文章主要為大家詳細(xì)介紹了UGUI實(shí)現(xiàn)隨意調(diào)整字體間距的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • c#中查詢表達(dá)式GroupBy的使用方法

    c#中查詢表達(dá)式GroupBy的使用方法

    本篇文章介紹一下GroupBy的使用方法,包括實(shí)驗(yàn)基礎(chǔ)數(shù)據(jù)用例,通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友跟隨小編一起看看吧
    2021-11-11
  • C#設(shè)計(jì)模式之策略模式

    C#設(shè)計(jì)模式之策略模式

    這篇文章介紹了C#設(shè)計(jì)模式之策略模式,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • c# 托盤雙擊不觸發(fā)單擊事件的實(shí)現(xiàn)方法

    c# 托盤雙擊不觸發(fā)單擊事件的實(shí)現(xiàn)方法

    在開發(fā)winform的時(shí)候我發(fā)現(xiàn),當(dāng)執(zhí)行雙擊操作(notifyIcon1_MouseDoubleClick)時(shí),會(huì)同時(shí)伴隨著單擊事件(notifyIcon1_MouseClick)的發(fā)生。。那如何才能使雙擊事件不觸發(fā)單擊事件呢?
    2009-02-02
  • C#.NET獲取撥號(hào)連接的寬帶連接方法

    C#.NET獲取撥號(hào)連接的寬帶連接方法

    這篇文章主要介紹了C#.NET獲取撥號(hào)連接的寬帶連接方法,實(shí)例演示了一個(gè)C#封裝的ADSL撥號(hào)連接類及其使用方法,需要的朋友可以參考下
    2015-06-06

最新評(píng)論