The basic difference is that with an abstract class you can define implemented methods along with abstract methods. With an interface you can only define abstract methods, although you don't need to use the abstract keyword. Another key difference is that a class can only inherit from one other class. It can implement multiple interfaces. Use interfaces if you need that type of behavior.
I'd suggest that you try a quick search on each of the three Java in General forums and the OO forum for this topic as it has been discussed here a few times already. Note that the search page link is at the top right of this page.