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的实例时,产生什么输出??请大侠指教一下,并帮小弟解释一下!!!谢谢

解决方案 »

  1.   

    楼上的您怎么判断的说说好吗?("x={0},y={1}",x,y);
    这个怎么理解呢?
      

  2.   

    ("x={0},y={1}",x,y);

    printf("x=%d,y=%d",x,y);
      

  3.   

    如果把
     int x=1;
     int y;
    改成
     int x=1;
     int y=2;
    那么输出的结果是不是x=1,y=2
    ??????对吗?就是在new B()时没有执行
    public B()
    {
       y=-1;
    }是吗???
      

  4.   

    new B()的时候执行了 
    public B()
    {
       y=-1;
    }
    但是 public A() 先执行。因此是 y=0。当new B()后, B.y 其实是 -1 了。
      

  5.   

    哦!!明白了,谢谢wdy9927() 您了!!接分吧