主题:关于虚方法和非虚方法混合调用的问题
using System;
class A
{
public virtual void F(){Console.WriteLine("A.F");}
}
class B:A
{
public override void F(){Console.WriteLine("B.F");}
}
class C:B
{
new public virtual void F(){Console.WriteLine("C.F");}
}
class D:C
{
public override void F(){Console.WriteLine("D.F");}
}
class Test
{
static void Main()
{
D d = new D();
A a =d;
B b =d;
C c =d;
a.F();
b.F();
c.F();
d.F();
}
}
输出结果为 B.F
B.F
D.F
D.F
请问哪位大虾能解释一下为什么吗 看不懂如何调用的
有什么函数被隐藏的吗
class A
{
public virtual void F(){Console.WriteLine("A.F");}
}
class B:A
{
public override void F(){Console.WriteLine("B.F");}
}
class C:B
{
new public virtual void F(){Console.WriteLine("C.F");}
}
class D:C
{
public override void F(){Console.WriteLine("D.F");}
}
class Test
{
static void Main()
{
D d = new D();
A a =d;
B b =d;
C c =d;
a.F();
b.F();
c.F();
d.F();
}
}
输出结果为 B.F
B.F
D.F
D.F
请问哪位大虾能解释一下为什么吗 看不懂如何调用的
有什么函数被隐藏的吗