J'ai des doutes sur ce code Java. Le résultat obtenu est "bry velu". Mes questions:
- Pourquoi ai-je cette sortie?
- Comment puis-je accéder à la référence d'objet String "name" dans la classe ZooKeeper?
- Si cela a quelque chose à voir avec l'observation variable, alors quelle variable est observée?
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?
}
}