1.virtual: Allowed to be rewritten, but not mandatory. Provide its own implementation when declaring;
2.abstract: Mandatory overrides are required for its successors. The declaration does not provide its own implementation, the abstract class can not be instantiated;
3.interface: An interface is a protocol whose declared members (properties, methods, events, and indexers) must be implemented by its inherited classes. The interface cannot be instantiated directly.
The difference between a virtual method and an abstract method is that a virtual method provides its own implementation and does not enforce a subclass rewrite, whereas an abstract method does not provide its own implementation and enforces a subclass rewrite.
Abstract classes are similar to interfaces, but the ideas are different. An interface is a member of a public class, whereas an abstract class is an abstract class member that requires a subclass to inherit and implement.
Original address:
Http://www.cnblogs.com/staid/archive/2010/06/23/1763437.html
reprint [C #] virtual function (virtual), abstract function (abstraction) and interface differences