標籤:blog 使用 ar 代碼 div log c har
public class Animal{ private string _name;//動物名稱 public string Name { get { return _name; } set { _name = value; } } public virtual string Burrow()//定義動物行為 { return "動物行為:"; }} public class Mouse : Animal{ public Mouse() { base.Name = "老鼠"; } public override string Burrow() { return base.Burrow() + "老鼠的兒子會打洞!"; }}
看這一塊代碼:
public override string Burrow() { return base.Burrow() + "老鼠的兒子會打洞!"; }
要使用override重寫關鍵字,父類對應的過程應有virtual關鍵字描述,代表該過程重新編寫(不會執行對應的父類過程),使用base關鍵字可以調用父類公開的所有方法、屬性、欄位等
public class Books{ //欄位修飾符為public public string bookName; public string ISBN; public Books(string bName, string bISBN) { this.bookName = bName; this.ISBN = bISBN; }}public class Sale : Books//定義衍生類別{ public double bookSell; public Sale(string bName, string bISBN, double sell)//子類建構函式 : base(bName, bISBN) { bookSell = sell; }}
再看這一塊代碼 子類 的建構函式 最先執行了 父類的構造方法,去初始化了欄位值,這是完全正確的,但是有時我們並不需要去初始化這些值,而父類的構造方法卻要求一定要執行,這種情況我們可以重載父類的構造方法,在父類加入 public Books(){}這一構造方法就可以滿足我們的要求啦!
子類構造方法修改如下:
public Sale(string bName, string bISBN, double sell)//子類建構函式 //: base() //也可以取消注釋,做用相同 { bookSell = sell;
}