This week's giveaway is in the EJB and other Java EE Technologies forum. We're giving away four copies of EJB 3 in Action and have Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan on-line! See this thread for details.
1) A class can extend only one abstract class but implement multiple interfaces.
2) An interface can only declare constants (any field) and public abstract methods (any method). An abstract class can have anything other classes can have: private fields, instance fields, protected members, constructors, you name it. Unlike other classes, it can also have abstract methods. Unlike interfaces, these abstract methods can also be protected or have no access modifier. Please note that they cannot be private - private methods cannot be overridden, and therefore private abstract methods would never get an implementation.