GeeCON Prague 2014*
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes this() and super() Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "this() and super() " Watch "this() and super() " New topic
Author

this() and super()

Rafal Grzybacz
Greenhorn

Joined: Aug 19, 2006
Posts: 6
Hi all,

Can someone verify that this() and super() can only be used inside constructors to specify which constructor to call in a situation where our code has several overloading constructors.

Thanks,

Rafal.
Vassili Vladimir
Ranch Hand

Joined: Mar 08, 2007
Posts: 1585
Hi,

Overloaded constructors can call each other using "this", and if we have several overloaded constructors that call each other using "this", then the last called constructor will call the constructor of the super class.

The following code demonstares how it happens:



Giving the output:

In Parent
In Child(int x,int y)
In Child(int x)
In Child()

Because, when you instantiate an object of Child, its default constructor will be called, which in turn, will call the overloaded constructor with one parameters, which in turn, will call the overloaded constructor with two parameters, which finally will call the super constructor of the super class.

Now that these method calls have been placed in the call stack, the stack itself will be unwinded, giving a LIFO (Last In First Out) order, which will cause the output of "In Child(int x,int y)" first, "In Child(int x)" second, "In Child()" finally.

Best of luck ...


Vassili ...
SCJP 5.0, SCWCD 1.4, SCJA 1.0
 
Consider Paul's rocket mass heater.
 
subject: this() and super()