This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
A class that is missing definitions for one or more methods. You can't thus create an object of that class. You must first create a subclass and provide definitions for the abstract methods. Unlike interfaces, abstract classes may implement some of the methods. Though you can't instantiate an abstract class, you can invoke its static methods.
An abstract class is one that is defined as abstract, which is taken to mean that it is incomplete. More often than not, an abstract class will have one or more abstract methods. A 'real' class may extend an abstract class and provide an implementation for the abstract methods.
Originally posted by Robby Robson: this is why I hate "hello World" it doesn't demosrate WHY you want to use java, when you can produce the same result with on line in BASIC??
Ah, but "Hello World!" is not meant to demonstrate that. Rather, it's only meant to teach you how the JVM kicks off your program -- its entry point. Many people find it easier to learn if they add one new concept at a time to what they already know instead of dumping it all in at once.