c# - C#中的多级继承构造函数

标签 c# inheritance constructor

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/

相关文章:

c# - 如何使用 Microsoft Graph SDK 查找电子邮件线程?

c# - 扩展静态类的扩展方法

c++ - "Marked as override but does not override"OOP代码问题

java - 正确使用构造函数来更改 int 值?

c++ - C++ 中以函数作为参数的构造函数

c++ - 对象按值传递与按引用传递时运行速度慢

c# - 需要 Mono Zeroconf 的样本

c# - 遍历具有可为空类型的 Enumerable 集合

java - 如何对车辆进行分类——继承与接口(interface)

c++ - 从派生类对象访问重写的基类成员