2

我有一个基类和派生类。基类有 2 个构造函数,如下所示。

    class A
{
    public A()
    {
        Console.WriteLine("I AM BASE class");
    }

    public A(int x)
    {
        Console.WriteLine("base : parameter 1");
    }
}

class B : A
{
    public B()
    {
        Console.WriteLine("I AM DERIVED class");
    }
}

class Program
{
    static void Main(string[] args)
    {
        B b = new B();
        Console.ReadKey();
    }
}

输出是I AM BASE CLASS并且I AM DERIVED CLASS 我的要求是,当 B 被实例化时,应该调用基类的参数化构造函数而不是默认构造函数。请让我知道如何实现这一目标?

4

3 回答 3

1

像这样编写B构造函数:

 public B() : base(1)
 {
   Console.WriteLine("I AM DERIVED class");
 }

注意:我已将问题标签更改为 C#,因为您给出的代码是 C#,而不是 C++。

于 2013-03-28T09:48:29.340 回答
1

在 B 的构造函数中使用初始化器列表

class B : A
{
    public B() : A(42)
    {
        Console.WriteLine("I AM DERIVED class");
    }
};
于 2013-03-28T09:47:54.497 回答
0
class B : A
{
    public B()
    {
        Console.WriteLine("I AM DERIVED class");
    }
    public B(int x)
    : A(x)
    {
        Console.WriteLine("I AM DERIVED class (with a parameter)");
    }
}
于 2013-03-28T09:48:14.630 回答