Paves way for Programming to the Interfaces by the way of Creating References to instantiate any class that has implemented the Interface.This in not possible in thru Abstract classes.
A:Interfaces define a contract. You should use it only if you want to support a group or related functionalities in a class or struct. Otherwise there is no need to use it.