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