一晃眼的功夫一周又過去了,這周學習的東西讓我感覺倒不是太難,比起C#感覺好多了。上次把有關C#的知識點說了一些,今天繼續……
一、同一個類中的函數具有相同的方法名,但參數的類型,個數,順序不一樣(至少滿足其一)的函數互為函數的 重載。函數的重載功能一樣,只是處理的內容和方式不一樣。
View Codepublic class People { //這兩個函數就互為重載 public People() { } public Peolpe(int i,string name) { } }
二、繼承:擴展自身的功能,通過關鍵字“:”實現
1、繼承中的構造函數
默認情況下,子類中的構造函數調用的是父類的空的構造函數。
2、方法的重寫
在父類中,一個函數可以被子類重寫,必須在方法的前面加關鍵字virtual修飾;
在子類中,要重寫父類的方法,則在方法前面加關鍵字override。
子類的重寫是為了加強其功能。
3、多態
(1)上轉型
把子類對象中的父類對象賦值給父類對象。此時父類對象可以調用自己的方法和已經重寫過的方法,如果方 法沒被重寫,調用的還是自己的方法。
(2)下轉型
把已經上轉型後的父類對象所對應的原來的子類對象再賦值給子類對象,此時子類對象可以調用自身的方法,繼承來的方法和已經重寫過的方法。
*******下轉型需要通過顯示的類型轉換。
注意-----------C#只支持單繼承,一個類只能有一個直接的父類。
View Codeusing System; public class StudyMutil1 { public static void Main() { //上轉型,把子類對象賦值給了父類對象 Father f = new Son(); f.Sing(); //下轉型,把已經上轉型後的父類對象f賦值給了子類對象son Son s = (Son) f; } } public class Father { //父類的方法被子類重寫 public virtual void Sing() { Console.WriteLine("給我一個理由忘記"); } } //son繼承了father public class Son:Father { //重寫父類的方法 public override void Sing() { Console.WriteLine("何問起"); } }