⼦类构造函数会默认调⽤⽗类⽆参构造函数1.调⽤⽗类⽆参构造函数是默认的!
⼦类的构造⽅法默认都去访问了⽗类的⽆参构造⽅法:在⼦类中的构造⽅法后都有⼀⾏默认语句 base()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15class Fu
{  public Fu()
{
Console.WriteLine("fu");
}
}
class Zi : Fu
{
public Zi()
:
base()//不管是否显式调⽤,控制台都会输出fu {
Console.WriteLine("zi");
}
}
Zi z = new Zi();
先执⾏⽗类的构造函数把⽗类初始化完成,再初始化⼦类的。
2.如何访问⽗类的有参构造函数?
writeline函数可以通过super(参数)去访问⽗类中的有参构造函数。可以通过this(参数...)去访问本类中的其他构造函数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18class Fu
{
public Fu(int a)
{
Console.WriteLine("fu"+a);
}
}
class Zi : Fu
{
public Zi():base(0)//调⽤⽗类有参构造函数{
Console.WriteLine("zi");
}
public Zi(int a):base(a)
{
Console.WriteLine("zi"+a);
}
}
如果定义了构造函数,则类就不会有默认的⽆参构造函数;如果⽗类中没有默认的,则⼦类构造函数必须显⽰调⽤⽗类的构造函数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。