面试题汇总
在下面的例子里
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
分析:因为A是B的父类,创建B的时候,首先要调用A的无参构造函数,在A的无参构造函数中调用了
PrintFields() 函数,由于用到了override 重写, 所以会调用B的PrintFields(),开始在控制台输出 x=?y=? ,由于现在y=-1这句还没有运行到,所以结果会是x=1,y=0
喜欢的朋友请帮忙点个赞!!!

浙公网安备 33010602011771号