comment "Interfaces form a contract between a class and the outside world, and this contract is enforced at build time by the compiler. If a class claims to implement an interface, all methods defined by that interface must appear in its source code before the class will successfully compile.
Interfaces may only contain method signatures and constant declarations (variable declarations which are declared to be both static and final). An interface may never contain method bodies.
As interfaces are implicitly abstract, they cannot be directly instantiated except when instantiated by a class which implements the said interface.
Interfaces simulate multiple inheritance - a mechanism that many languages otherwise would not provide. Interfaces can extend other interfaces but they cannot implement them." ()