An interface is similar to an abstract class. Both types must be inherited.
You cannot create an instance of either. Abstract members require implementation in the derived type.
Interface members require implementation in a derived type. Although abstract and interface members are similar,
there are several differences:
1. An abstract class can contain some implementation. Interfaces have no implementation
2. Abstract classes can inherit other classes and interfaces. Interfaces can only inherit other interfaces.
3. Abstract classes can contain fields. Interfaces cannot have state.
4. Abstract classes have constructors and destructors. Interfaces have neither.
5. Interfaces can be inherited by structures. Abstract classes are not inheritable by structures.
6. Interfaces support multiple inheritance. Abstract classes support single inheritance.