Look at the code below :
class Rodent {
    protected int tailLength = 4;
    public void getRodentDetails() {
        System.out.println(this.tailLength);
    }
}
public class Mouse extends Rodent {
    protected  int tailLength = 8;
    public static void main(String[] args) {
        Mouse mouse = new Mouse();
        mouse.getRodentDetails();
    }
}
Now getRodentDetails() is inherited.
When it is called by a Mouse reference , this.tailLength should print 8 and not 4 as parent tailLength is hidden in mouse.
Why does it print 4 ?
EDIT : The question is not about what is variable hiding and not also about how to try to override variables. The closest answer was given by JB Nizet in comments which I have expanded below as answer.
 
     
    