父类在C#中的子类中的构造函数

时间:2012-06-18 09:13:05

标签: c# inheritance constructor parent

我有一个父类和一个子类。 父有一个初始化其参数的构造函数。

我的问题是:孩子如何看待父母的构造函数?我可以为孩子定义构造函数吗?

5 个答案:

答案 0 :(得分:1)

此继承示例显示:

  • 如何从子项
  • 上的新构造函数调用父构造函数
  • 如何传递父构造函数所需的参数

代码示例:

public class Parent
{
    private object _member;

    public Parent(object member)
    {
        this._member = member;
    }
}

public class Child : Parent
{
    public Child(object member)
        : base(member)
    {
    }
}

答案 1 :(得分:0)

您可以在孩子课程的ctor中使用base(...)

foreacmple:

public class Child : BaseClass 
{
    public Child() : base(/*some parameters*/) //CALLING BaseClass parametrized ctor
    {  
    }
}

请注意,如果您不需要某些特定参数,请不要执行任何,因为BaseClass默认ctor将被称为 当您致电ctor课程的Child时。

答案 2 :(得分:0)

您必须为子项定义构造函数。您可以在构造函数原型及其实现之间使用: base()调用基类的构造函数:

public class Parent {
  public Parent() {
    ...
  }
}

public class Child : Parent {
  public Child() : base() { // calls Parent.ctor
  }
}

答案 3 :(得分:0)

当然。

您在“base”关键字之后。

public class Fruit
{
    string TypeOfFruit { get; set; }

    public Fruit (string typeOfFruit)
    {
        TypeOfFruit = typeOfFruit;
    }

}

public class Apple : Fruit
{
    string AppleType { get; set; }

    public Apple(string appleType) : base("Apple")
    {
        AppleType = appleType;
    }

}

答案 4 :(得分:0)

您可以很好地定义子类的构造函数,只有在您没有为类定义构造函数时才提供默认值

同时如何查找父

的构造函数

它会检查一个无参数构造函数是否存在于父类中,如果你没有它(编译器让你知道相同),否则你将不得不使用像{这样的参数调用父构造函数{1}}

如果您有其他意思,请更新问题。