在阅读我公司的代码时, 我发现下面有一些代码
class Child:Parent
{
public Child():base()
{
//do something
}
}
我的问题是:base()
的使用是否有意义?
在致电Child()
之前,我会自动调用base()
,我是对的吗?
我的意思是没有参数的构造函数。
答案 0 :(得分:4)
是的,你是对的!在这种情况下,base()不是必需的,但如果您的父类没有无参数构造函数,则必须这样做。
遵循MSDN文档https://msdn.microsoft.com/en-us/library/ms173115(v=vs.90).aspx
在派生类中,如果未调用基类构造函数 显式地使用base关键字,默认构造函数,if 有一个,被称为隐含。 这意味着以下构造函数声明实际上是相同的:
public Manager(int initialdata)
{
//Add further instructions here.
}
public Manager(int initialdata)
: base()
{
//Add further instructions here.
}
如果基类不提供默认构造函数,则派生 class必须使用base来显式调用基础构造函数。
希望它有所帮助!