Interface
An interface is a contract in the form of a collection
of method and constant declarations. When a class implements an interface,
it promises to implement all of the methods declared in that interface.
You use an interface to define a protocol of behavior
that can be implemented by any class anywhere in the class hierarchy.
Interfaces are useful for the following: