C#中,如何选择使用虚方法还是抽象方法

在由基类派生出的子类中,必须有基类的方法(行为),而且有不同的方法实现。
   这种情况下应用抽象方法。抽象方法没有方法体的实现.虚方法有方法体的实现。
  
   在由基类派生出的子类中,存在于基类相同的方法,但可能有不同的方法实现。
   这种情况用虚方法。

   ---
   语言表述的能力太差,举个例子:
 
   (基类)父亲会驾驶汽车(行为),
  
   当所有的子类都具有驾驶汽车的行为时,且子类驾驶的汽车类型不同。
 
   这时应用抽象类。
 
   当父类驾驶的汽车类型为小汽车,子类1驾驶的汽车类型为卡车,子类2驾驶的汽车类型为小汽车时。
 
   应用虚方法。

原文地址:https://www.cnblogs.com/f2flow/p/2364484.html