Interfaces

    Interfaces define a contract for objects, but don't specify the implementation. The implementation is usually a plain object or class instance.