Interfaces in Java allow for:
1) Defining common behaviors without implementing them, revealing functionality without revealing implementation.
2) Unrelated classes to implement similar methods.
3) Modeling multiple inheritance which is not possible with classes.