Warum speichert oder reserviert es Speicher für übergeordnete Klassenvariablen im Unterklassenobjekt?

Im folgenden 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());

      Zebra z = new Zebra();
      System.out.println(z.name + z.makeNoise());
   }
}

Beide Objekte m undz), wenn ich in Debug-Fenstern von Eclipse sehe, enthalten beide Werte vonname variable furry undstripes).

Ich verstehe, dass im Polymorphismus die generische Methode der Superklasse auch von der Unterklasse verwendet werden kann. Aber warum speichert ein Unterklassenobjekt auch Werte von Superklassenvariablen, selbst im Falle des Versteckens? Gibt es eine Verwendung davon?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage