【问题标题】:Passing parameters to the base class constructor将参数传递给基类构造函数
【发布时间】:2023-04-04 07:00:01
【问题描述】:

如果基类和派生类都有带参数的构造函数,那么我们在哪里将参数传递给基类构造函数?

【问题讨论】:

  • 这是一个重复的问题。 stackoverflow.com/questions/12051/… 谷歌搜索“基类构造函数参数”会为您带来正确的。
  • 你说“你不能实例化一个抽象类”,但这并不完全正确。如果您创建非抽象派生类的实例,则该实例也是抽象基类的实例。它也是 System.Object 类的一个实例。
  • 仅供参考,即使它是 abstract 类,它也可以定义自定义构造函数,其参数可以传入。它们不能直接实例化/调用,但是而是在派生类型中通过使用base keyword 和派生构造函数来引用。

标签: c# inheritance parameters abstract


【解决方案1】:

像这样:

public class DerivedClass : BaseClass
{
    public DerivedClass(int derivedParam, String baseParam):base(baseParam)
    {
    }
}

这里的base关键字调用与提供的参数重载匹配的基类构造函数。

【讨论】:

  • 如果基构造函数被调用为:base(param),是否仍然调用默认构造函数?
  • 没有。该构造函数必须调用this()@Ahmn21
猜你喜欢
  • 2014-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-11
相关资源
最近更新 更多