First, virtual method (virtual method)
The virtual keyword is used to decorate a method in a base class. There are two things you can do with virtual:
Scenario 1: The virtual method is defined in the base class, but the virtual method is not overridden in the derived class. In a call to a derived class instance, the virtual method uses the method defined by the base class.
Scenario 2: The virtual method is defined in the base class and then overridden in a derived class by using override. In a call to a derived class instance, the virtual method uses the derived overridden method.
Ii. Abstract Method (Abstraction method)
The abstract keyword can only be used to decorate a method in an abstraction class, and there is no specific implementation. An implementation of an abstract method must be implemented in a derived class by using the override keyword.
Transferred from: http://www.cnblogs.com/blsong/archive/2010/08/12/1798064.html
The difference between "C #" abstract and virtual