代码:
using System;
class A
{
public virtual void Fun1(int i)
{
Console.WriteLine(i);
}
public void Fun2(A a)
{
a.Fun1(1);
Fun1(5);
}
}
class B : A
{
public override void Fun1(int i)
{
base.Fun1(i + 1);
}
static void Main()
{
B b = new B();
A a = new A();
a.Fun2(b);
b.Fun2(a);
}
}
明明A的Fun1方法已经被重写了,为什么运行的结果是2,5,1,6?为什么不是2,6,2,6(如图)
实在弄不明白,请高手指教,谢谢了!