一个简单的问题

jianjialin jianjialin 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

public class A{
public virtual void fun1(int i){
Console.WriteLine(i);
}
public void fun2(A a){
fun1(5);
}
}
public class B:A{
public override void fun1(int i)
{
base.fun1(i+1);
}
}
static void Main(string[] args)
{
B b = new B();
A a = new A();
b.fun2(a);
}


为什么最后会输出6
在
public void fun2(A a){
fun1(5);
}

中, A类不是自己有fun1方法吗?为什么会去调用B的fun1方法呢?
基础不好,请朋友们详细解释一下

谢谢~
...全文

相关推荐

评论 8
收藏 已收藏
分享
返回顶部
jianjialin
C# 111,129 成员 642,540 内容