aspose file tools*
The moose likes Beginning Java and the fly likes Using the Keyword super Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Using the Keyword super" Watch "Using the Keyword super" New topic
Author

Using the Keyword super

miguel lisboa
Ranch Hand

Joined: Feb 08, 2004
Posts: 1281
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?


java amateur
W. Joe Smith
Ranch Hand

Joined: Feb 10, 2009
Posts: 710
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?


1) Yes. If you do not include a call to super();, the compiler will automatically put one in for you.
2) Because the SuperClass constructor might do something that you need to be aware of. It could set a value to some variable, or perhaps create another object you need. Think about it like this: would you call a random method in your code without knowing what it does?
3) You wouldn't need to explicitly call super(); However, overriding and the use of super is different from constructor chaining and super();. The keyword super is used to access something from a class's superclass, whereas super() calls the superclass's no-arg constructor.


SCJA
When I die, I want people to look at me and say "Yeah, he might have been crazy, but that was one zarkin frood that knew where his towel was."
miguel lisboa
Ranch Hand

Joined: Feb 08, 2004
Posts: 1281
thank you
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Using the Keyword super