开发者

How can I call a base class's parameterized constructor from a derived class if the derived class has no parameterized constructor?

I have a base class with two constructors: 开发者_如何学Ca default constructor and a parameterized constructor. Another class inherits from that base class and it only has a default constructor. How can I call the base class's parameterized constructor from the derived class?


It's not entirely clear what your question is, but I suspect you either want to add an explicit parameterless constructor to your child class:

// Parameterless child constructor calling parameterized base constructor
public Child() : base("foo", "bar") {
}

or add both a parameterized and parameterless one:

public Child() {
}

public Child(string foo, string bar) : base(foo, bar) {
}

Note that constructors aren't inherited - so just because a base class has a particular constructor signature doesn't mean you can instantiate a class using that signature. The child class has to provide it itself.

Any compiler-provided parameterless constructor will always call the parameterless constructor of its base class.


Something like this?

class Parent
{
    public Parent(){}
    public Parent(string s) {}
}

class Child : Parent
{
    public Child() : base("42") { }
}


Here you go:

// Parent class
class Parent
{
    public Parent()
        {
        // Paremeterless constructor
        }

        public Parent(string a, int b)
        {
        // Paremterised constructor
        }       
}


// Child class       
class Child : Parent
{
    public Child()
                :base("hi", 10)
        {
        // Parameterized constructor of the base class is invoked   
        }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜