A class definition that implements an interface must define all the methods
specified in that interface. In this respect, an interface is like an
abstract class.
An interface differs from an abstract class, however, in the following respects:
An interface only imposes definition requirements; it does not
supply definitions.
A class extends exactly one superclass; a class can implement an
unlimited number
of interfaces.