父類和子類概述
1.概念解釋
①.子類繼承父類,父類派生子類。
②.子類又叫派生類,父類又叫基類(超類)。
③.子類繼承父類成員,也可以有自己獨立的成員。
2.繼承的條件
繼承需要符合的關系:Is-a 的關系:Dog is an Animal
繼承中的關鍵字
1.this關鍵字
可以使用this關鍵字訪問父類成員
2.base關鍵字
關鍵字base的作用:
①.調用父類的構造函數。
②.調用父類的屬性和方法。
3.protected關鍵字
父類成員:
①.public修飾:所有類都可以訪問
②.private修飾:子類無法訪問
③.protected修飾:允許子類訪問,而不允許其他非子類訪問
子類調用父類構造函數總結
1.隱式調用
如果其他子類的構造函數沒有使用base知名調用父類哪個構造函數時,子類會默認調用父類的無參構造函數:base(),這時父類要提供無參的構造函數。
2.顯示調用
如果父類沒有無參數的構造函數,子類構造函數必須指明調用父類的哪個構造函數。
3.示例

1 class Animal 2 { 3 public string Name { get; set; }//名字 4 public string Color { get; set; }//顏色 5 public string Kind { get; set; }//種類 6 public string Favorite { get; set; }//喜好 7 8 public Animal() { } 9 public Animal(string name, string color, string kind) 10 { 11 this.Name = name; 12 this.Color = color; 13 this.Kind = kind; 14 } 15 //自我介紹 16 public void Introduce() 17 { 18 string info = string.Format("我是漂亮的{0},我的名字叫{1},身穿{2}的衣服,我愛吃{3}!", this.Kind, Name, Color, Favorite); 19 Console.WriteLine(info); 20 } 21 }

1 class Dog:Animal//繼承Animal類 2 { 3 public Dog(string name, string color, string kind) 4 { 5 this.Name = name;//使用this關鍵字訪問父類成員 6 this.Color = color; 7 this.Kind = kind; 8 } 9 10 public Dog() { }//隱式調用:默認調用父類的無參構造函數,若此時父類並沒有無參構造函數,則出錯。 11 12 public Dog(string name, string color, string kind, string favorite) : base(name, color, kind) 13 {//顯示調用 14 this.Favorite = favorite; 15 } 16 public void Race() 17 { 18 base.Introduce();//使用base關鍵字調用父類方法 19 Console.WriteLine("下面給大家表演賽跑,請大家鼓掌!"); 20 } 21 }
繼承的特性
1.繼承的傳遞性
傳遞機制 A->B;B->C C具有A的特性。
2.繼承的單根據性
一個類只能有一個父類(一個類只能有一個基類)。