我有一个类(我们称之为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()构造函数方法?
答案 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
。