在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
的无参构造函数和带参构造函数。注意,当子类构造函数没有显式地调用父类的构造函数时,编译器会自动插入对父类无参构造函数的调用。如果父类没有无参构造函数,子类必须显式地调用一个带参数的父类构造函数。