This list of questions is based on Effective Java (2nd edition) by Joshua Bloch.
Interfaces allow for multiple inheritance. Existing classes can be easily retrofitted to implement a new interface, for example to support mixin type functionality.
Yes. Abstract classes are easier to evolve. A new method can be added with a default implementation without breaking child classes. With an interface any implementing class would need to implement this new method. That means that API design for interfaces is much harder.
You can combine the advantages of Abstract classes by providing an abstract skeletal class implementation with any non-trivial interface (see Java Collections Framework). The Abstract Skeleton can either be subclassed or can be used with composition by a class implementing the interface.
Item 18, pp 93-99