会,调用派生类的构造函数,真正的调用情况为, 派生类名(参数列表):基类名()派生类的构造函数会默认的调用基类的无参构造函数。派生类构造函数名(总参数列表):基类1构造函数(参数列表),基类2构造函数(参数列表),....基类n构造函数(参数列表)
生成对象之时,就是调用构造函数之日。派生类的对象自动继承了基类的一些基本信息(性别,姓名,学好),也就会调用基类的构造函数来给这些值赋值。如果基类和派生类都没有显示定义构造函数,那么派生类就会调用基类的默认构造函数。
必须执行啊,子类中继承了父类中的成员,其实所有成员都继承下来了,只是有访问控制,那么这部分成员我们需要调用父类的构造函数来初始化,这样才能保证子类成员的完整性啊。我们可以指定调用哪个父类的构造函数,如果不指定则默认调用父类的无参构造函数。
public A:B
{
public A():base(){}
}
我们通过这种在后面增加:base()的方式来显示的指定调用哪个父类构造函数来初始化子类中包含的父类成员。
用base关键字
class A
{
public A()
{
ConsoleWriteLine("in A");
}
}
class B:A
{
public B():base()
{
ConsoleWriteLine("In B");
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)