当前位置: 代码迷 >> ASP.NET >> 一道面试题目~有答案但不知道为什么?高手门告诉下,该怎么解决
  详细解决方案

一道面试题目~有答案但不知道为什么?高手门告诉下,该怎么解决

热度:3929   发布时间:2013-02-25 00:00:00.0
一道面试题目~~~有答案但不知道为什么?高手门告诉下
在下面的例子里
using   System;
class   A
{
public   A()
{
PrintFields();
}
public   virtual   void   PrintFields(){}
}
class   B:A
{
int   x=1;
int   y;
public   B()
{
y=-1;
}
public   override   void   PrintFields()
{
Console.WriteLine( "x={0},y={1} ",x,y);
}
当使用new   B()创建B的实例时,产生什么输出?
答:X=1,Y=0;x=   1   y   =   -1


为什么会打印出4个啊~~~~把程序运行的顺序告诉我下,讲的详细点.谢谢大家了

------解决方案--------------------------------------------------------
new B()运行过程如下:
先调用父类的构造函数,接着调用B中的PrintFields();(因为原型是B类型)
接着调用B构造函数,接着调用PrintFields();
  相关解决方案