class Base { int x=1; void show() { System.out.println(x); } } class Child extends Base { int x=2; public static void main(String s[]) { Child c=new Child(); c.show(); } } OUTPUT is 1. The method show is inherited in Base class but priority should be given to local variable and hence the output should have been 2 or is it that the compiler implicitly prefixes super before it??