I think there have been lots of threads in this forum discussing interfaces and abstract classes.
http://forum.java.sun.com/thread.jspa?forumID=256&threadID=389830
http://forum.java.sun.com/thread.jspa?forumID=54&threadID=5120074
http://forum.java.sun.com/thread.jspa?forumID=54&threadID=499077
http://forum.java.sun.com/thread.jspa?forumID=31&threadID=546668
Interfaces define a contract for what an implementing class should provide. Abstract classes do the same but they can also provide some common part of the implementation.