跳到主要内容

C# 如何从基类创建派生类对象?

参考答案:

在C#中,你不能直接从基类创建派生类的对象。你总是通过派生类的构造函数来创建派生类的对象。这个构造函数会隐式或显式地调用基类的构造函数(如果基类有构造函数需要被调用的话)。

下面是一个简单的例子来说明这个概念:

// 基类
public class BaseClass
{
    public BaseClass()
    {
        Console.WriteLine("BaseClass constructor called");
    }
}

// 派生类
public class DerivedClass : BaseClass
{
    public DerivedClass()
    {
        Console.WriteLine("DerivedClass constructor called");
    }
}

// 在主函数中创建派生类的对象
class Program
{
    static void Main(string[] args)
    {
        // 创建派生类的对象
        DerivedClass obj = new DerivedClass();
    }
}

在这个例子中,DerivedClass 是从 BaseClass 派生出来的。当我们创建 DerivedClass 的一个对象时(即 new DerivedClass()),DerivedClass 的构造函数首先会被调用。因为 DerivedClass 是从 BaseClass 派生出来的,所以 BaseClass 的构造函数也会被隐式地调用。因此,你会在控制台上看到以下输出:

BaseClass constructor called
DerivedClass constructor called

注意,如果基类有带参数的构造函数,而派生类没有显式地调用它,那么你需要在派生类中提供一个默认的构造函数,或者显式地调用基类的带参数的构造函数。否则,编译器会报错。