初始化一个继承的类

时间:2012-08-30 17:35:43

标签: c# class initialization

我有一个类(我们称之为Class1),它继承了另一个类(Class2)。 我正在尝试做的是在Class1中继承时在Class2中运行costructor方法。

我想它必须看起来像这样:

// Class1
public class Class1 : Class2
{
    public Class1()
    {

    }
}
// Class2
public class Class2
{
    public Class2()
    {
        //this is the function I want to run
    }
}

但我无法让它像这样工作。
有没有办法做到这一点,而不必实际从Class1调用Class2()构造函数方法?

2 个答案:

答案 0 :(得分:6)

您正在声明构造函数不正确。删除void关键字:

// Class1 
public class Class1 : Class2 
{ 
    public Class1() 
    { 

    } 
} 
// Class2 
public class Class2 
{ 
    public Class2() 
    { 
        //this is the function I want to run 
    } 
} 

基类的默认构造函数将自动运行。如果你想调用非默认构造函数,你可以这样做:

// Class1 
public class Class1 : Class2 
{ 
    public Class1() : base("argument")
    { 

    } 
} 
// Class2 
public class Class2 
{ 
    public Class2() 
    { 
    } 
    public Class2(string theParameter)
    {
        //code for initializing the object with the string parameter 
    }
} 

答案 1 :(得分:0)

你总是打电话给Class2的构造函数。如果您没有调用base()的代码,则会为您添加。如果Class2没有无参数构造函数,并且您没有显式调用基础构造函数,则会出现编译错误。

如果您有Class1,则必须构建Class2;如果没有C_Sharp_Developer,则无法拥有Person