Interfaces are useful for the following: * The purpose of an interface is to define a contract. A contract that can have multiple implementations in the form of concrete classes. * Modeling multiple inheritance, a feature of some object-oriented languages that allows a class to have more than one super class |