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()
a指向B的对象B已经重写了A中的Fun(),为什么a.Fun()结果是A.Fun(),是不是指向的是B中的A部分,有谁可以详细讲解一下吗?????