The main advantages of interface over abstract class is to overcome the occurrence of diamond problem and achieve multiple inheritance . In java there is no solution provided for diamond problem using classes. For this reason multiple inheritance is block using classes in java.