У меня есть некоторые сомнения относительно этого Java-кода. Вывод, который он дает, - "пушистый брей". Мои вопросы:
- Почему я получаю этот вывод?
- Как я могу получить доступ к ссылке "Имя" объекта String в классе ZooKeeper?
- Если это имеет какое-то отношение к переменной shadowing, то какая переменная затеняется?
Код:
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?
}
}