C#中重載與重寫差別剖析。本站提示廣大學習愛好者:(C#中重載與重寫差別剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是C#中重載與重寫差別剖析正文
1、媒介
接觸面向對象的思惟曾經有一段時間了,為何要進修面向對象呢?由於面向對象具有可復用性、可保護性、可擴大性等長處。
自己之前一向接觸的是VB說話,所以正式接觸面向對象的編程說話還要從C#開端。前段時光,剛學完C#,個中重載、重寫傻傻分不清晰。現在經由過程查閱材料對這二者有了一個年夜概的懂得,缺乏的地方還請多多指教。
2、界說
重載:在統一界說域內(好比一個類外面)。辦法名雷同,參數個數、順序、類型分歧。是以重載對前往值沒有請求,可以雷同,也能夠分歧。然則假如辦法名雷同,參數個數、順序、類型都雷同,而前往值分歧,則沒法組成重載。
重寫:繼續時產生,在子類中重寫界說父類中的辦法,子類中的辦法和父類中的辦法是一樣的。即辦法名、參數的個數、順序、類型和前往值都雷同。例如父類辦法聲明為virtual(虛辦法),子類中應用override聲名此辦法的重寫。
3、示例
1、重載:
我們樹立一個貓類,在這個類中結構兩個辦法。一個是帶參數姓名的辦法,另外一個是不帶參數姓名的辦法。如許當我們初始化一個“貓”的對象時,便可以選擇給對象起名或許不起名。從而到達擴大的目標。
2、 重寫:
好比植物都有“叫”的辦法。貓和狗是它的子類,貓的啼聲是“喵”,狗的啼聲是“汪”,若何在子類中重寫父類的辦法呢?起首在植物類中結構一個虛辦法。
Class Animal { public virtual string Shout()//留意潤飾符中增長了一個virtual,它表現此辦法是虛辦法,可以被子類重寫 { return ""; } }
在構建貓這個類時,我們重寫“叫”這個辦法
Class cat:Animail { Public override string Shout() {//症結字override,表現辦法重寫 string result="喵"; return result; } }
在構建狗這個類時,我們也重寫“叫”這個辦法
Class Dog:Animal { public override string Shout() { string result="汪"; return result; } }
重寫產生在父類和子類之間,聲明的是父類,實例化的是子類。本例籽實現了多態。
4、小結
重載必需產生在一個類中,辦法名雷同,參數分歧。值得留意的是,辦法重載必需經由過程參數分歧來斷定挪用哪一個辦法,而不克不及經由過程前往值。
重寫override普通用於接話柄現和繼續類的辦法改寫。值得留意的是,被籠罩的辦法不克不及為private,不然在其子類中只是新界說了一個辦法,並沒有停止籠罩。
以上就是本文的全體內容,願望年夜家對C#中重載與重寫的異同有所懂得,感謝年夜家的浏覽。