【重載】
提供了創建同名的多個方法的能力,但這些方法需使用不同的參數類型。
特點:方法名必須相同,但參數類型或個數必須不同
優點:在不改變原來方法的基礎上,新增功能
代碼:
- <span style="font-size:14px;"> class Cat
- {
- private string name = "";
- public Cat(string name)
- {
- this.name = name;
- }
- public Cat()
- {
- this.name = "無名";
- }
- }</span>
以上簡短几行代碼就實現了方法的重載
【重構】
調整程序代碼,使其更符合面向對象規則,提高軟件的擴展性和維護性。前提是不改變程序原有的功能
特點:對代碼的優化
代碼:比如現在我有兩個類,一個是Cat,另一個是Dog,他們都有叫方法,如果我每個類都去寫實現叫方法,就造成了代碼的重複,怎麼辦那,可以把叫方法抽象出來,放到一個父類Animal中,讓子類Cat、Dog去繼承
- <span style="font-size:14px;">class Animal
- {
- public virtual void GetShoutSound()
- { }
- }
- class Cat:Animal
- {
- public override void GetShoutSound()
- {
- Console.WriteLine("貓的叫聲爲:喵");
- }
- }
- class Dog : Animal
- {
- public override void GetShoutSound()
- {
- Console.WriteLine("狗的叫聲爲:");
- }
- }</span>
【重寫】
多出現在多態裏,父類裏寫一個virtual方法或abstract方法,子類通過override重寫去實現父類的方法
上面重構就體現了重寫
【總結】
在驗收時師父問重載、重構、重寫的區別,當時就蒙了,但下來一查,原來這就是重載,重構,重寫呀,由此總結,對比學習真的很重要,還有一點更爲重要,我們在學一知識點後,要能自己口述出來,能講給別人聽,能講出來,起碼概念就得明確,即中心明確,別學完之後不知道自己學的是什麼,講出來纔是自己真正吸收的,在以後的學習中要加強這方面的鍛鍊。