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的实例时,产生什么输出??请大侠指教一下,并帮小弟解释一下!!!谢谢
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的实例时,产生什么输出??请大侠指教一下,并帮小弟解释一下!!!谢谢
这个怎么理解呢?
同
printf("x=%d,y=%d",x,y);
int x=1;
int y;
改成
int x=1;
int y=2;
那么输出的结果是不是x=1,y=2
??????对吗?就是在new B()时没有执行
public B()
{
y=-1;
}是吗???
public B()
{
y=-1;
}
但是 public A() 先执行。因此是 y=0。当new B()后, B.y 其实是 -1 了。