In simplest way I would say the main use is polymorphism i.e, ability to perform the same operation on a number of different objects.
From here:-
An interface is a contract (or a protocol, or a common understanding)
  of what the classes can do. When a class implements a certain
  interface, it promises to provide implementation to all the abstract
  methods declared in the interface. Interface defines a set of common
  behaviors. The classes implement the interface agree to these
  behaviors and provide their own implementation to the behaviors. This
  allows you to program at the interface, instead of the actual
  implementation. One of the main usage of interface is provide a
  communication contract between two objects. If you know a class
  implements an interface, then you know that class contains concrete
  implementations of the methods declared in that interface, and you are
  guaranteed to be able to invoke these methods safely. In other words,
  two objects can communicate based on the contract defined in the
  interface, instead of their specific implementation.
Secondly, Java does not support multiple inheritance (whereas C++
  does). Multiple inheritance permits you to derive a subclass from more
  than one direct superclass. This poses a problem if two direct
  superclasses have conflicting implementations. (Which one to follow in
  the subclass?). However, multiple inheritance does have its place.
  Java does this by permitting you to "implements" more than one
  interfaces (but you can only "extends" from a single superclass).
  Since interfaces contain only abstract methods without actual
  implementation, no conflict can arise among the multiple interfaces.
  (Interface can hold constants but is not recommended. If a subclass
  implements two interfaces with conflicting constants, the compiler
  will flag out a compilation error.)