Here is the way it is explained in the book I am studying from.(Which I highly recommend by the way as it is great):
"A no-arg constructor is not necessarily the default constructor, although the default constructor is always a no-arg constructor. The default constructor is the one the compiler provides. While the default constructor is always a no-arg constructor, you're free to put in your own no-arg constructor."
p. 315, Sierra, Kathy and Bates, Bert. Sun Certified Programmer & Developer for Java 2 Study Guide. McGraw-Hill/Osborne 2003.
If it's in this book, I assume it may be on the exam. I think default means at compile time default, not at run time default. In other words, at compile time if you do not declare ANY constructors, the compiler will add this one at compile time because every class must have at least one constructor:
I think it is important to distinguish between the default constructor and a no-arg user defined constructor because the default constructor will ALWAYS call the no-arg constructor of the parent (whether or not one trully exists) while a user defined no-arg constructor may be configured to call any constructor of a parent class. For that matter, a user defined no-arg constructor may have other code in it as well. In other words I can say for sure that the default constructor has not only no-args, but also has a certain predetermined default behavior, while a user defined no-arg constructor may not.
That's just how I read it. I'm still learning too.
[ November 13, 2004: Message edited by: J Williams ]
[ November 14, 2004: Message edited by: J Williams ]