Always prefer interfaces over abstract classes. If you need to provide some sort of implementation, create an abstract class which implements your base interface. So you can provide some implementation, while you leave the choice whether extend your abstract class or implement the interface.
Abstract classes force you to extend them in order to fulfill the contract. Since you should prefer composition over inheritance, its easier to make your own class with a private instance of your class x which implements interface y and implement y with your wrapper too than extending a abstract class. (e.g. Strategy Pattern)
Have a look at effective java, item 18 for further information.