C#有没有办法调用爷爷的构造函数?假设我有:
public class A
{
public A(parameterX x)
{
doSomething();
}
}
public class B : A
{
public B(parameterX x) : base(x)
{
doSomethingElse();
}
}
然后我有:
public class C : B
{
}
我想让C中的构造函数调用A中的构造函数,我可以用什么来实现? 有没有类似的东西:
public C(parameterX x) : base : base(x)
或者我怎样才能从 C 调用 A 中的构造函数?
谢谢。
最佳答案
您不能调用祖父类的构造函数。
但是,您也不需要这样做,因为基类已经这样做了。
当您编写 public C(parameterX x) : base(x)
时,它将调用 B(x)
,后者将依次调用 A( x)
.
一般来说,由于您的基类的构造函数将始终调用其基类构造函数(您的祖 parent ),因此能够显式调用祖 parent 构造函数是没有意义的,因为那样最终会构造它两次。
关于c# - C#中的多级继承构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7909912/