我們知道,抽象類是不能被實例化的。但抽象類是否可以有構造函數?答案是可以有。抽象類的構造函數用來初始化抽象類的一些字段,而這一切都在抽象類的派生類實例化之前發生。不僅如此,抽線類的構造函數還有一種巧妙應用:就是在其內部實現子類必須執行的代碼。
以下就是在抽象類的構造函數中來初始化字段。
class PRogram{static void Main(string[] args){Employee employee = new Employee();Console.WriteLine(employee.ID);Console.ReadKey();}}public abstract class Base{private Guid _id;public Base(){this._id = Guid.NewGuid();}public Guid ID{get { return this._id; }}}public class Employee : Base{}
總結:雖然抽象類不能被實例化,但可以有構造函數。由于抽象類的構造函數在實例化派生類之前發生,所以,可以在這個階段初始化抽象類字段或執行其它與子類相關的代碼。
|
新聞熱點
疑難解答