关于继承的一个问题

delectation 2008-08-04 10:16:03
public abstract class A
{
public A()
{
Console.WriteLine('A');
}
public virtual void Fun()
{
Console.WriteLine("A.Fun()");
}
}

public class B : A
{
public B()
{
Console.WriteLine('B');
}

public new void Fun()
{
Console.WriteLine("B.Fun()");
}
}
class Program
{
static void Main(string[] args)
{
A a = new B();
a.Fun();

Console.Read();
}
}

搞不清为什么输出是的A,B,A.fun,而不是A,B,B.fun
...全文
84 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
delectation 2008-08-05
  • 打赏
  • 举报
回复
还是不明白.
zzyhuian06142 2008-08-04
  • 打赏
  • 举报
回复
New的缘故
xhan2000 2008-08-04
  • 打赏
  • 举报
回复
因为new是隐藏,而不是override覆盖




B a = new B();
a.Fun();
这样才能出现你预期的结果
Fioit 2008-08-04
  • 打赏
  • 举报
回复
在B中用override而不是new
dyshadow 2008-08-04
  • 打赏
  • 举报
回复
这个问题,恩,支持一下。等高人来救。

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧