First: "This cannot be done in interfaces as none of the methods in the interface will have the body.": It's important to note that this is a little out of date. Interfaces can have method implementations/bodies (default and/or static methods). This is possible since Java 8.
why interfaces can be implemented in abstract classes but not in other interfaces?
Your question may be strictly about the implements
keyword declaration as that's the only aspect in which it makes a difference. In this sense, it's a question of design. Abstract classes are classes, interfaces are interfaces. There are differences between these two types of component, the most notable of which, in this case, is that concrete classes cannot inherit from multiple abstract classes.
There are very good answers on SO about the differences between abstract classes and interfaces (such as this).
Conceptually, though, an interface can extends
another interface and then provide an implementation for each of the inherited abstract methods with default
methods. One could argue that this is an implementation of the super-interface. But when it comes to the specifics of the language, only a class (abstract or not) can declare to implement
an interface.
In the end, though, whether concrete methods are in an interface or in an abstract class, before they're used, an object of a concrete class will have to be created (I'm excluding functional interfaces here), so the difference doesn't matter that much.