在C#中,子類構造函數可以通過base
關鍵字來調用父類的構造函數。base
關鍵字后面跟著父類構造函數的參數列表。這里有一個例子:
public class ParentClass
{
public ParentClass()
{
Console.WriteLine("Parent class constructor called.");
}
public ParentClass(string message)
{
Console.WriteLine($"Parent class constructor with message: {message}");
}
}
public class ChildClass : ParentClass
{
public ChildClass() : base() // 調用父類的無參構造函數
{
Console.WriteLine("Child class constructor called.");
}
public ChildClass(string message) : base(message) // 調用父類的帶參構造函數
{
Console.WriteLine("Child class constructor with message called.");
}
}
在這個例子中,ChildClass
有兩個構造函數,分別調用了ParentClass
的無參構造函數和帶參構造函數。注意,當子類構造函數沒有顯式地調用父類的構造函數時,編譯器會自動插入對父類無參構造函數的調用。如果父類沒有無參構造函數,子類必須顯式地調用一個帶參數的父類構造函數。