An interface describes the public methods that a class should implement along with the calling conventions of those methods. An Interface says nothing about implementation of its methods. In essence, an interface is a contract of guaranteed operations, or behaviors. A class that implements an interface must provide code to execute when the methods of the interface are invoked. An object of class that implements an interface can be cast into the type of that interface, then be passed to other objects under the interface