Por que ele armazena ou aloca memória para variáveis de superclasse, no objeto de subclasse?
No código a seguir
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());
}
}
Ambos os objetos (m
ez
), se eu vir nas janelas de depuração do eclipse, conter os dois valores dename
variável (furry
estripes
)
Entendo que no polimorfismo, o método genérico de superclasse também pode ser usado por subclasses. Mas por que o objeto subclasse também armazena valores de variáveis de superclasse, mesmo em caso de ocultação. Existe algum uso disso?