面试题 C# 虚方法与重写
 如题: 
 using   System; 
 class   A 
 { 
    public   void   F(){Console.WriteLine( "A.F ");} 
    public   virtual   G(){Console.WriteLine( "A.G ");}    
 } 
 class   B:A 
 { 
    public   void   F(){Console.WriteLine( "B.F ");} 
    public   override   G(){Console.WriteLine( "B.G ");} 
 } 
 void   main() 
 { 
    B   b=new   B(); 
    A   a=b; 
    a.F(); 
    a.G(); 
    b.F(); 
    b.G(); 
 } 
 让写出程序将输出什么? 
 我先写的是:A.F-A.G-B.F-B.G   后又改成了:B.F-B.G-B.F-B.G 
 我是不是改错了? 
 诸位帮看下 
------解决方案--------------------答案: 
 A.F 
 B.G 
 B.F 
 B.G   
 你看到A类的G是个虚方法啊。。。所以它实际上是调用的B.G