In C #, abstract and virtual are apt to confuse the use of virtual and abstract methods in C #, now to discuss the differences. Both involve the use of a mate with override in a derived class.
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.
Interfaces and abstract classes:
The most essential difference: An abstract class is an incomplete class, an abstraction of an object, and an interface is a code of conduct.
Abstract and virtual in C #