An interface refers to the point of interaction between components. Interfaces are applicable at both the hardware and software level. In general, an interface exposes a contract without exposing the underlying implementation details. In Object Oriented Programming, interfaces define abstract types that expose behavior, but contain no logic. Implementation is defined by the class or type that implements the interface.

- Wiki
1 articles, 0 books.

The most important concept in software engineering is the concept of an interface. This article is not about interfaces in Java, it is about interfaces in software design, and to a lesser extent, interfaces anywhere in the universe. There are many other important concepts used in software development, but I would argue that many of them actually end up relating back to why interfaces are so important.