c#函數重載

【重載】

       提供了創建同名的多個方法的能力,但這些方法需使用不同的參數類型。

       特點:方法名必須相同,但參數類型或個數必須不同

       優點:在不改變原來方法的基礎上,新增功能

       代碼:

[csharp] view plain copy
  1. <span style="font-size:14px;"class Cat  
  2.  {  
  3.      private string name = "";  
  4.      public Cat(string name)  
  5.      {  
  6.          this.name = name;  
  7.      }  
  8.      public Cat()  
  9.      {  
  10.          this.name = "無名";  
  11.      }  
  12.  }</span>  

以上簡短几行代碼就實現了方法的重載

【重構】

       調整程序代碼,使其更符合面向對象規則,提高軟件的擴展性和維護性。前提是不改變程序原有的功能

       特點:對代碼的優化

       代碼:比如現在我有兩個類,一個是Cat,另一個是Dog,他們都有叫方法,如果我每個類都去寫實現叫方法,就造成了代碼的重複,怎麼辦那,可以把叫方法抽象出來,放到一個父類Animal中,讓子類Cat、Dog去繼承

[csharp] view plain copy
  1. <span style="font-size:14px;">class Animal  
  2.     {  
  3.         public virtual void GetShoutSound()  
  4.         { }  
  5.     }  
  6.     class Cat:Animal  
  7.     {  
  8.         public override void  GetShoutSound()  
  9.         {  
  10.             Console.WriteLine("貓的叫聲爲:喵");  
  11.         }  
  12.     }  
  13.     class Dog : Animal  
  14.     {  
  15.         public override void GetShoutSound()  
  16.         {  
  17.             Console.WriteLine("狗的叫聲爲:");  
  18.         }  
  19.     }</span>  

【重寫】

       多出現在多態裏,父類裏寫一個virtual方法或abstract方法,子類通過override重寫去實現父類的方法

       上面重構就體現了重寫

【總結】

       在驗收時師父問重載、重構、重寫的區別,當時就蒙了,但下來一查,原來這就是重載,重構,重寫呀,由此總結,對比學習真的很重要,還有一點更爲重要,我們在學一知識點後,要能自己口述出來,能講給別人聽,能講出來,起碼概念就得明確,即中心明確,別學完之後不知道自己學的是什麼,講出來纔是自己真正吸收的,在以後的學習中要加強這方面的鍛鍊。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章