Interface
A boundary between the implementation of a system and the world that uses it. It provides an abstraction of the entity
Abstraction
Representation that is arrived at by removing unnecessary details.
Information Hiding
The practice of dividing a system into many smaller parts, with interfaces that hide design decisions. This allows use of the object without knowledge of it’s inner workings.