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);
}
}
在线等
{
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);
}
}
在线等
{
base.Fun1(i + 1);
}主要是这个 不是问考察什么 不明白这个 他重写基类方法 base又调用基类 迷糊
public override void Fun1(int i)
{
base.Fun1();
}
这才是一样。
这里i不是加1了 为什么 最后输出还是1
我设断点 一步步看 就是到这里看不明白 各位别笑话
还有楼上说通俗点 呵呵
base调用基类上已被其他方法重写的方法