I know that the message is old, trying to give a concrete answer to the OPs question, the reason lies in the difference between the interface and the class.
Think about it; An interface is a description of an implementation; it is not an implementation behavior. The interface simply describes the methods and events of the class, etc.
Or, as Microsoft says:
The interface defines the signatures for the set of elements that developers must provide. Interfaces cannot provide implementation details ~ (behavior) for members.
The class that inherits the interface provides the behavior of these methods and events. - that is, it implements [behavior ~ functionality] of an interface
So why the interface:
Define an interface if you need to provide a polymorphic hierarchy of value types.
Consider the definition of interfaces to achieve an effect similar to the multiple inheritance effect.
https://msdn.microsoft.com/library/ms229013(v=vs.100).aspx
Hope this helps someone understand.
source share