帮我看一下这个C#的输出结果。

来源:百度知道 编辑:UC知道 时间:2024/05/22 04:51:59
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

why?

B继承A new B() 时父类构造方法执行。子类重写了父类方法。

或者说 new B() 时 是先执行 new A() 再 new B()

额 太乱了 懒得看了

就是 父类子类 子类 重写父类的方法

主意 父类子类 无参的构造函数

这样的问题 放到VS里面调试 单步运行 你就明白了