現在、JavaプログラマSilver SE8 (通称:紫本)で勉強しております。
どうにか調べたりし、理解しながら頑張っていたのですが、どうしても分からないことがありました。
次が問題のプログラムになります。
html
1public class AnimalCreator { 2 public static void main(String[] args) { 3 Animal[] animals = {new Animal(), new Cow()}; 4 for(Animal a : animals) { 5 Animal x = a.getAnimal(); 6 System.out.println(x); 7 } 8 9 } 10} 11 12class Animal{ 13 Animal getAnimal() { 14 return new Animal(); 15 } 16} 17 18class Cow extends Animal{ 19 Cow getAnimal() { 20 return new Cow(); 21 } 22}
この問題では、私の解釈では、for文の中の
Animal x = a.getAnimal();
というところで、リターンが返ってくるので、
Animal x = new Animal();
Animal x = new Cow();
という状態になっているのではないかと考えております。
もし、これがあっているとするなら、System.out.println(x)のxにはオブジェクトが入るということでしょうか?
オブジェトを文字として表示・・というのはどういうことなのでしょうか・・・。
書籍の回答には問題ありませんとだけ書いてあり、詳しい内容は書いてありませんでした。
よろしくお願い致します。
回答5件
あなたの回答
tips
プレビュー