Answer:
Interfaces are way to use full abstraction.That;s why it is preffered over implementations.
Interfaces are just like class.But the methods declared inside an abstract class are by default abstract and the variables are by default static,final.Which is not the case with classes in classes the variables can be static or non- static ,fincal or non-final and methods can be abstract or non-abstract.
Java classes does not support multiple inheritance but interfaces support multiple inheritance.So whenever we want to implement multiple inheritance in Java we use interfaces.