permaculture playing cards*
The moose likes Threads and Synchronization and the fly likes Calling Overridden methods and overshadowed variables Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Java » Threads and Synchronization
Bookmark "Calling Overridden methods and overshadowed variables" Watch "Calling Overridden methods and overshadowed variables" New topic
Author

Calling Overridden methods and overshadowed variables

Stephen Joseph
Ranch Hand

Joined: Dec 29, 2000
Posts: 50
Why is there difference between calling the overidden methods and overshadowed variables based on the object type(class) and reference (as stated in the book of Khalid )
Tanveer Rameez
Ranch Hand

Joined: Dec 11, 2000
Posts: 158
hi
I am not sure what you mean.But if you mean something that involves the code:
<code>
class Base{
String str="in Base";
void amethod()
{ system.out.println("in Base");

}
}
clas Sub extends base{
String str="in Sub";
void amethod()
{
System.out.println("In Sub");
}
}
class test{
public static void main(String args[])
{
Base b;
Sub s=new Sub();
b=s;
s.amethod();
System.out.println(s.str);
b.amethod();
System.out.println(b.str);
}

}
}
</code>
the output is: in Sub //amethod of Sub invoked by s
in Sub //varaible str of Sub accessed by s
in Sub //amethod of Sub invoked by b
in Base //varaible str of Base accessed by b
So the method called depends on the object, not on the object reference . Here the object reference of type Base points to an object of type Sub. So method amethod of class Sub is invoked.But variables accessed depends on the object reference.Since the object reference is of type Base, the variable 'str' of the Base class is accessed.
I hope this is what you wanted to know
regards
Tanveer


Author of JPhotoBrush Pro (www.jphotobrushpro.com)
Stephen Joseph
Ranch Hand

Joined: Dec 29, 2000
Posts: 50
Thank you Tanveer.You guessed my Q right, but if you can tell me what is the reason for this difference why cant overridden methods and overshadowed variables be called in the same way.
Ajith Kallambella
Sheriff

Joined: Mar 17, 2000
Posts: 5782
Since this topic is not concerned with Threads and Synchronization, I am moving it to a more appropriate forum - Java in General(intermediate). Please continue the discussion there.
Thanks!
Ajith


Open Group Certified Distinguished IT Architect. Open Group Certified Master IT Architect. Sun Certified Architect (SCEA).
 
jQuery in Action, 2nd edition
 
subject: Calling Overridden methods and overshadowed variables
 
Similar Threads
Polymorphism issue in the test code
Calling Overridden methods and overshadowed variables
Static method call from non static method
Calling static method [ Object vs Class ]
Dont declare global variables in Servlet