Evolution of interfaces

In the most general sense one could think of an interface as a collection of ways a thing allows other things to interact with it. But how abstract this idea really is?