virtual 的作用
public   class   A 
             { 
                         public   virtual   void   fun() 
                         { 
                                     Console.WriteLine( "A   ok "); 
                         } 
             }   
             public   class   B   :   A 
             { 
                         public   void   fun() 
                         { 
                                     Console.WriteLine( "B   ok "); 
                         } 
             }   
 把类B里的fun()注释编译也会通过,是不是现在类A里的fun()前有没有virtual都是一样啊?
------解决方案--------------------实现多态性
------解决方案--------------------实现多态性,对,在类A里的fun()前有没有virtual都是一样 
------解决方案--------------------编译可以通过,但是你仔细观察一下,多了一个警告,这里正确的写法应该是 
 public class B : A 
     { 
         public override void fun() 
         { 
             Console.WriteLine( "B ok "); 
         } 
     }   
 如果没有virtual关键字的话,要在子类覆盖基类的方法,需要用new关键字,如下: 
 public class A 
     { 
         public void fun() 
         { 
             Console.WriteLine( "A ok "); 
         } 
     }   
     public class B : A 
     { 
         public new void fun() 
         { 
             Console.WriteLine( "B ok "); 
         } 
     }