using System;
class A
{
public A()//因为有继承类的对象调用此方法,此函数不能省,除非继承类的构造函数中接指定调用带参数的
{
Console.WriteLine("A constructed");
}
public A(int a)
{
Console.WriteLine("A constructed have parameter");
}
public void MethodA()
{
Console.WriteLine("Call MethodA");
}
~A()
{
Console.WriteLine("A destructed");
}
}
class B:A
{
public B()
{
Console.WriteLine("B constructed");
}
public void MethodB()
{
Console.WriteLine("Call MethodB");
}
~B()
{
Console.WriteLine("B destructed");
}
};
class C
{
public static void Main()
{
A d;
d=new A(7);
d.MethodA();
Console.WriteLine("**************");
B e=new B();
e.MethodB();
}
};
运行结果:
A constructed have parameter
Call MethodA
**************
A constructed
B constructed
Call MethodB
B destructed
A destructed
A destructed
析构函数的调用是在GC进行时,所以你不能预测析构函数何运会运行.