1.1.3 继承树的构造器调用顺序
在子类在访问基类之前,基类就已经完成了初始化工作了,构造器的调用是从继承树顶级向下调用的.最后才调用子类的构造器.看以下例子可以看出来构造器在继承树中是按什么顺序调用的:
class SuperClass
{
public SuperClass()
{
Console.WriteLine("SuperClass的构造器被调用.");
}
}
class SunClass1:SuperClass
{
public SunClass1()
{
Console.WriteLine("SunClass1的构造器被调用.");
}
}
class SunClass2:SunClass1
{
public SunClass2()
{
Console.WriteLine("SunClass2的构造器被调用.");
}
}
class Test
{
static void Main (string[] args)
{
SunClass2 sun = new SunClass2();
Console.ReadLine(); //使不退出Main函数,以便观察结果
}
}
运行的结果是:
SuperClass的构造器被调用.
SunClass1的构造器被调用.
SunClass2的构造器被调用.
从结果可以看出,构造器确实是从顶级向下调用的.