首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

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

2011-12-27 
一道面试题目~~~有答案但不知道为什么?高手门告诉下在下面的例子里usingSystemclassA{publicA(){PrintFie

一道面试题目~~~有答案但不知道为什么?高手门告诉下
在下面的例子里
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();

热点排行