來,我們問一下自己:建構函式是幹什麼的?重構是什麼?重寫是什麼?過載是什麼?重寫和過載聯絡的是什麼?重構與過載的區別是什麼?重寫和重構又是什麼關係?它們分別怎麼用?重構是重新構什麼?重寫又是在重寫什麼?過載載的又是什麼?哈哈,撒了吧
建構函式:是一種特殊的方法。主要是用來在建立物件的時初始化物件,即為物件成員變數賦初始值,總與new運算子一起使用在建立物件的語句中。特別的乙個類可以有多個建構函式,可根據其引數個數的不同或引數型別的不同來區分它們即建構函式的過載
重構:重構我的理解是:它是一種修改,重構的結果是去除了重複**和死**,使設計和邏輯更加清晰。降低專案的耦合度,使專案更加模組化,有利於專案的開發效率和後期的維護。
重寫:當乙個子類繼承乙個父類,而子類中的方法與父類中的方法的名稱,引數個數、型別都完全一致時,就稱子類中的這個方法重寫了父類中的方法。
過載:乙個類中的方法與另乙個方法同名,但是參數列不同,這種方法稱之為過載方法。
重構:就舉個栗子:貓和狗類繼承父類動物,但是它們都有叫這個方法,除了叫的聲音不一樣之外,其餘都是一樣的,這樣就造成了**的重複,如果要修改這個方法得同時修改這兩個子類,非常的麻煩。這時候重構就起到了很重要的作用。它將重複的**提到父類,再加乙個獲得叫的方法就可以啦。
class animal
//獲得聲音的方法
protected virtual string getshoutsound()
}
//類貓繼承動物
class cat : animal
} //狗類繼承動物
class dog:animal
}
過載:當我看到乙個人哇,我的天哪,穿的很**很暴露,那麼我的直覺或者說對這個人的第一印象就是奔放,開放、不保守。但是當跟她真正的交流接觸之後,發現跟表面上我所認為的截然不同,她內心很保守,不跟男生開玩笑,打鬧,她只是喜歡那樣的穿衣風格而已。那麼在我心裡對這個人的印象就過載了。
過載的一般特徵:方法名是相同的,但是引數型別或個數必須要有所不同。舉個例子:像下面的關於對name的初始化就用到過載,如上面的建構函式dog(),函式名相同,但是引數是不同的,乙個由曹安淑,乙個沒引數,這就是方法過載
class dog
public dog(string name)
}
重寫:重寫我的理解就是我們要寫**,要用的都是同乙個模板(方法),那麼我們只需要在模板的基礎上(繼承這個模板)只重寫裡面的內容即可。舉個例子:
class program
public class you
} public class my : you
} }
看到這裡,大家對這三個的理解應該清晰了一些吧?上面所問道的問題應該也是有答案了。重構構的是類,過載在的是方法,重寫寫的也是方法。ps以上是我自己的理解,有什麼誤區請大家指正。o(∩_∩)o哈哈~
——越簡單、越肆意 、越幸福
C 過載重寫重構
前幾篇部落格說了重寫和過載。今天主要說重構,順便比較一下三者。重構就是通過調整程式 改善軟體的質量 效能,使其程式的設計模式和架構更趨合理。提高軟體的擴充套件性和維護性。通俗點說,重構。就是改善既有 的設計,讓 更加的符合物件導向規則。而重寫是出如今多型裡的。virtualkeyword宣告虛方法,...
c 重寫重載重定義
include 34 includeusing namespace std 過載 重寫 重定義 重寫發生在兩個類之間 父類和子類 過載必須發生在乙個類之間 引數列表 重寫分為兩類 1.虛函式重寫 前面加上virtual關鍵字,會發生多型2.非虛函式重寫 重定義 class parent virtua...
方法過載,重構,覆蓋,重寫的區別
方法過載還是比較好理解的,就是在類的內部,定義多個方法,這些方法的方法名字相同,引數型別和引數個數不同,注意,返回值型別並不能區分過載 看 public void show int a,double b public void show double c public intshow double ...