public virtual void Fun1(int i)
        {
            Console.WriteLine(i);
        }        public void Fun2(A a)
        {
            a.Fun1(1);
            Fun1(5);
        }
    }
    public class B : A
    {
        public override void Fun1(int i)
        {
            base.Fun1(i + 1);
        }        public static void Main()
        {
            B b = new B();
            A a = new A();
            a.Fun2(b);
            b.Fun2(a);
        }
    } 
在线等

解决方案 »

  1.   

    public override void Fun1(int i)
      {
      base.Fun1(i + 1);
      }主要是这个  不是问考察什么  不明白这个  他重写基类方法 base又调用基类 迷糊
      

  2.   

    作为一个例子,他考你调用的是基类的版本还是子类的版本。作为区分,子类调用的比父类的多1。
    public override void Fun1(int i)
    {
      base.Fun1();
    }
    这才是一样。
      

  3.   

    base.Fun1(i + 1);
    这里i不是加1了 为什么 最后输出还是1
    我设断点 一步步看 就是到这里看不明白   各位别笑话 
    还有楼上说通俗点 呵呵 
      

  4.   

    F11单步调试
    base调用基类上已被其他方法重写的方法