It's simple, actually. First, when you inherit from a superclass, you automatically inherit all of its methods (except in the case of an abstract class) and have all of the default implementation. For example, when extend
Applet, you get methods like add() and repaint() which are immediately usable by you with no coding. When you impliment an interface, you are saying basically 'I promise to implement all of the necessary methods in order for anyone to use this class as a <INTERFACE>. For example, when you implement Runnable, you must write a method called run() with the signature public void run(), because you are saying that the class (or object) is Runnable, so anyone using it can use the run() method. Its designed so that everyone is always on the same page, every Runnable object has a run() method, every ActionListener has an actionPerformed(ActionEvent) method, etc. Helps clear up confusion.
Jason