在C#中,構(gòu)造函數(shù)不能直接繼承,但可以通過以下方式實(shí)現(xiàn)繼承關(guān)系:
base
關(guān)鍵字調(diào)用基類的構(gòu)造函數(shù)。這樣,當(dāng)創(chuàng)建派生類對(duì)象時(shí),基類的構(gòu)造函數(shù)將被自動(dòng)調(diào)用。例如:public class BaseClass
{
public BaseClass()
{
Console.WriteLine("BaseClass constructor called.");
}
}
public class DerivedClass : BaseClass
{
public DerivedClass() : base()
{
Console.WriteLine("DerivedClass constructor called.");
}
}
public class Program
{
public static void Main()
{
DerivedClass obj = new DerivedClass();
}
}
輸出結(jié)果:
BaseClass constructor called.
DerivedClass constructor called.
public class BaseClass
{
public string Property { get; set; }
public BaseClass(string property)
{
Property = property;
Console.WriteLine("BaseClass constructor called.");
}
}
public class DerivedClass : BaseClass
{
public DerivedClass(string property) : base(property)
{
Console.WriteLine("DerivedClass constructor called.");
}
}
public class Program
{
public static void Main()
{
DerivedClass obj = new DerivedClass("Hello, World!");
}
}
輸出結(jié)果:
BaseClass constructor called.
DerivedClass constructor called.
在這兩種方法中,基類的構(gòu)造函數(shù)或初始化器將在派生類構(gòu)造函數(shù)之前被調(diào)用,從而實(shí)現(xiàn)繼承關(guān)系。