i read the following in the sun
java tutorials:
source: http://java.sun.com/docs/books/tutorial/java/IandI/subclasses.html
You can write a subclass constructor that invokes the constructor of the superclass, either implicitly or by using the keyword super.
source: http://java.sun.com/docs/books/tutorial/java/IandI/super.html
Using the Keyword super
Accessing Superclass Members
If your method overrides one of its superclass's methods, you can invoke the overridden method through the use of the keyword super. You can also use super to refer to a hidden field (although hiding fields is discouraged).
Invocation of a superclass constructor must be the first line in the subclass constructor.
The syntax for calling a superclass constructor is
super();
--or--
super(parameter list);
With super(), the superclass no-argument constructor is called. With super(parameter list), the superclass constructor with a matching parameter list is called.
--------------------------------------------------------------------------------
Note: If a constructor does not explicitly invoke a superclass constructor, the Java compiler automatically inserts a call to the no-argument constructor of the superclass. If the super class does not have a no-argument constructor, you will get a compile-time error. Object does have such a constructor, so if Object is the only superclass, there is no problem.
--------------------------------------------------------------------------------
If a subclass constructor invokes a constructor of its superclass, either explicitly or implicitly, you might think that there will be a whole chain of constructors called, all the way back to the constructor of Object. In fact, this is the case. It is called constructor chaining, and you need to be aware of it when there is a long line of class descent.
still, i have some doubts:
1)
"(...)write a subclass constructor that invokes the constructor of the superclass, either implicitly(...)" means not explicitly calling super() inside my constructor?
2) "
It is called constructor chaining, and you need to be aware of it when there is a long line of class descent." why should i be aware?
3) please take a look at the following code: as i dont need to override anything from superclass i dont need to call super() and anyway the compiler does it for me; am i right?