1. 当类中的方法声明前加上了virtual修饰符,称之为虚方法,反之为非虚; 
2. 对于虚方法,无论被其所在类的实例调用,还是被这个类的派生类的实例调用,方法的执行方式不变; 
3.举例子: 
using System; 
class A 
{  
    public void F() 
    { 
         Console.WriteLine("A.F"); 
    } 
    public virtual void G() 
    { 
         Console.WriteLine("A.G"); 
    } 
} 
class B:A 
{ 
     new public void F() 
    { 
          Console.WriteLine("B.F"): 
    } 
   public override void G() 
   { 
         Console.WriteLine("B.G"): 
   } 
} 
class Test 
{ 
    B b = new B(); 
    A a=b; 
    a.F(); 
    b.F(); 
    a.G(); 
    b.G(); 
  } 
} 
4. A类提供了两个方法:非虚的F和虚方法G。类B则提供了一个新的非虚的方法F,从而覆盖了继承的F;类B同时还重载了继承的方法G。 
5. 输出结果: 
    A.F 
    B.F 
    B.G 
    B.G 
 |