can anyone pls explain why the foll piece of code prints 1 for sup1.methodA() instead of 0?
class Superclass {
int x = 0;
int methodA()
{
return x;
}
}
class Subclass extends Superclass {
int x = 1;
int methodA()
{
return x;
}
}
class Q30 {
public static void main(
String[] args)
{
Subclass sub = new Subclass();
System.out.println("sub.methodA()= " + sub.methodA());
Superclass sup = new Superclass();
System.out.println("sup.methodA()=" + sup.methodA());
Superclass sup1 = new Subclass();
System.out.println("sup1.methodA()=" + sup1.methodA() + process(sup1));
}
static int process(Superclass obj)
{
return obj.x;
}
}