An interface is blueprint/agreement with the rest of the world for how any object that implements it can communicate with the object it defines. Hope that makes sense. They contain the definition/format, but contain no business logic (see abstract classes). The interface can exist without any business logic even being built. Any class that implements the interface must also implement all methods declared.