What is an Abstract Class?
An abstract class is a special kind of class that cannot be instantiated. An abstract class is only to be sub-classed or inherited from. In other words, it only allows other classes to inherit from it but cannot be instantiated. In simple words, it is a kind of contract that forces all the subclasses to carry on the same hierarchies or standards.
What is an Interface?
An interface is not a class. It is an entity that is defined by the word Interface. An interface has no implementation; it only has the signature or in other words, just the definition of the methods without the body. The main difference between them is that a class can implement more than one interface but can only inherit from one abstract class. Since C# doesn’t support multiple inheritance, interfaces are used to implement multiple inheritance.