In c#, we have interfaces. Where did these come from? They didn\'t exist in c++.
It's just another layer of abstraction. Not really sure where it came from.. I still often hear them called contracts rather than interfaces.