I am having some doubts about this Java code. The output it gives is "furry bray". My questions:
- Why do i get this output?
 - How can I access the String object reference "name" in ZooKeeper class?
 - If it has something to do with variable shadowing, then which variable is being shadowed?
 
Code:
class Mammal {
   String name = "furry ";
   String makeNoise() { return "generic noise"; }
 }
 class Zebra extends Mammal {
   String name = "stripes ";
   String makeNoise() { return "bray"; }
 }
 public class ZooKeeper {
   public static void main(String[] args) { new ZooKeeper().go(); }
   void go() {
     Mammal m = new Zebra();
     System.out.println(m.name + m.makeNoise());
     //Output comes as "furry bray". Please explain this.
     //And how can we access the name variable, the one having "stripes " in it.
     //Does it have something to do with Variable Shadowing?
   }
 }