0

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

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

4

5 回答 5

1

您可以在您的base(...)的 ctor 中使用。

前例:

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

请注意,如果您不需要某些特定参数,则不要执行任何操作,因为调用类时会顺便BaseClass调用默认值。ctorctorChild

于 2012-06-18T09:15:09.653 回答
1

此继承示例显示:

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

代码示例:

public class Parent
{
    private object _member;

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

public class Child : Parent
{
    public Child(object member)
        : base(member)
    {
    }
}
于 2012-06-18T09:16:10.047 回答
0

您可以很好地为子类定义构造函数,仅在您没有为类定义构造函数的情况下才提供默认构造函数

同时对于如何查找parent的构造函数

它将检查父类中是否存在无参数构造函数,以防万一您没有(编译器让您知道相同),否则您将不得不使用参数调用父构造函数,例如base("This is the string parameter")

如果您的意思是别的,请更新问题。

于 2012-06-18T09:21:41.417 回答
0

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

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

public class Child : Parent {
  public Child() : base() { // calls Parent.ctor
  }
}
于 2012-06-18T09:15:23.260 回答
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;
    }

}
于 2012-06-18T09:15:54.913 回答