例如:
class Program
{
static void Main(string[] args)
{
new B(); //这里是入口,首先从这里执行 1
}
}
class A
{
private int a = 10; //初始化成员变量,基类 3
public A() //执行基类的构造函数 4
{
PrintFields(); //4.1
}
public virtual void PrintFields() { } //这句没有执行
}
class B : A
{
int x = 1; //初始化成员变量,本身 2
int y;
public B() //执行本身的构造函数 5
{
y = -1;
}
public override void PrintFields() //4.2
{
Console.WriteLine("x={0},y={1}", x, y);
}
}
//执行结果很名明显,x=1,y=0;