谁帮做一道面试题呀,
8.                  写出程序的输出结果: 
 public   class   A       
 { 
                         public   virtual   void   Fun1(int   i)    
                      { 
                                     Console.WriteLine(i); 
                         }   
                         public   void   Fun2(A   a)          
                      { 
                                     a.Fun1(1); 
                                     Fun1(5); 
                         } 
 }     
 public   class   B   :   A       
 { 
                         public   override   void   Fun1(int   i)             
                      { 
                                     base.Fun1   (i   +   1); 
                         }   
                         public   static   void   Main()          
                      { 
                                     B   b   =   new   B(); 
                                     A   a   =   new   A(); 
                                     a.Fun2(b); 
                                     b.Fun2(a);                               
                         } 
 }
------解决方案--------------------太有难度了~
------解决方案--------------------2 
 5 
 1 
 6
------解决方案--------------------首先在a.Fun2(b)中a.Fun1(1)这里的a其实是B类型的,所以调用的是b.Fun1,也就是base.Fun1(1+1),输出2;然后调用a.Fun1(5)输出5。   
 b.Fun2(a)中,a.Fun1(1)调用的是A类型的fun1方法,输出1,然后的Fun1(5)调用的是b.Fun1(5)所以输出6
------解决方案--------------------override
------解决方案--------------------考你的面向对象基础知识...
------解决方案--------------------2 
 5 
 1 
 6