Win a copy of Design for the Mind this week in the Design forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Constructor,why displaying null on this program

 
Shiva Mohan
Ranch Hand
Posts: 486
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator



When the Child class loaded in main() method,at that time s=�Child� member variable is initialized.Right?
Then why the answer s=null printing when we access super class constructor method() will call Child class method() method?I thought it would print s=Child.Please Explain the rules.
 
Keith Lynn
Ranch Hand
Posts: 2409
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Because the superclass is initialized during the process of initializing the subclass. The instance variables in the subclass are given default values, and before they are initialized there is an implicit call to the no-args constructor of the superclass. During that call, an overridden method is called. Since it is overridden in the subclass and that is the method that executes. Since the subclass has not finished initializing yet, the value of its instance variables are the default values.
[ September 20, 2006: Message edited by: Keith Lynn ]
 
Srinivas Kalvala
Ranch Hand
Posts: 257
Firefox Browser Hibernate Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello,

The simple & straight answer is, the instance variables are created and assigned default values until the super class constructor is executed, then the values are assigned.



Output:
--------------

Inside this Parent Hello
Inside Method Child null
Inside this Child Hello
Inside Method Child Hello


As you see, the Parent method() is not called....
 
Shiva Mohan
Ranch Hand
Posts: 486
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Srinivas and Keith thank you so much for all your help.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic