调用基类构造函数

在执行派生类的构造函数之前调用基类的构造函数。例如,如果 Mammal 扩展 Animal,则在创建 Mammal 的实例时首先调用 Animal 的构造函数中包含的代码。

如果派生类没有显式指定应该调用基类的哪个构造函数,则编译器将采用无参数构造函数。

public class Animal
{
    public Animal() { Console.WriteLine("An unknown animal gets born."); }
    public Animal(string name) { Console.WriteLine(name + " gets born"); }
}

public class Mammal : Animal
{
    public Mammal(string name)
    {
        Console.WriteLine(name + " is a mammal.");
    }
}

在这种情况下,将打印通过调用 new Mammal("George the Cat") 实例化 Mammal

一个未知的动物出生了。
乔治猫是一种哺乳动物。

查看演示

调用基类的不同构造函数是通过在构造函数的签名和它的主体之间放置: base(args) 来完成的:

public class Mammal : Animal
{
    public Mammal(string name) : base(name)
    {
        Console.WriteLine(name + " is a mammal.");
    }
}

现在打印 new Mammal("George the Cat") 将打印:

乔治猫出生了。
乔治猫是一种哺乳动物。

查看演示