namespace study
{
class ClassAndStruct
{
static void Main()
{
Third t = new Third();
}
}
class First
{
public First()
{
Console.WriteLine("First");
}
~First()
{
System.Console.WriteLine("First's destructor is called");
}
}
class Second : First
{
public Second()
{
Console.WriteLine("Second");
}
~Second()
{
System.Console.WriteLine("Second's destructor is called");
}
}
class Third : Second
{
public Third()
{
Console.WriteLine("Third");
}
~Third()
{
System.Console.WriteLine("Third's destructor is called");
}
}
}
输出:
First
Second
Third
Third's destructor is called
Second's destructor is called
First's destructor is called
因为构造函数是访问一个类的方法、属性或任何其它东西之前, 第一条执行的语句是包含有相应类的构造函数
所以.输出是最初继承那个类First.接着Second,Thrid.因为没有最初类.何来有派生的类.所以先访问,所以会调用构造函数
也就是说:当创建派生类的对象时,系统将会调用基类的构造函数和派生类的构造函数,构 造函数的执行次序是:先执行基类的构造函数,再执行派生类的构造函数。如果派生类又有对象成员,则,先执行基类的构造函数,再执行成员对象类的构造函数,最后执行派生类的构造函数。