An interface tells that what a class can do. It is a good
object oriented design to use interfaces in your program.
When a class implements the interface, it is actually
contracting to implement all the functionality of the interface.
Interfaces also support multiple inheritance.