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()");
}public static void Main()
{
A a = new B();
a.Fun();
}
}
为什么输出
A
B
A.Fun()而不是
A
B
B.Fun()
new关键字是隐藏继承的成员,这里是什么原因呢
我把new改成override就输出B.Fun()
到底是什么原因,请给我详细分析