This week's book giveaway is in the OCPJP forum. We're giving away four copies of OCA/OCP Java SE 7 Programmer I & II Study Guide and have Kathy Sierra & Bert Bates on-line! See this thread for details.
Basically, an abstract class is a class that cannot be instantiated. If you like, you can treat it as an interface. An abstract class is normally expected to be subclassed and its methods overriden/implemented by this subclass. It doesn't matter if the abstract class has abstract methods or not. You can have an abstract with all of its methods implemented. However, a class that implements an interface or extends an abstract class, and does not implement all of superclass's methods, must be declared as an abstract class.