我從同一個超類創建一個不同動物對象的數組,然後使用for循環我使用另一個類的方法檢索每個動物的描述,但是當我分配每個新的動物對陣列它改變每個的名字和類型到那最後的動物。如何讓它停止改變每隻動物的參數?對象數組賦值改變參數
這裏是我現在的代碼:
我對動物的每種類型,每種類型不同的描述中列出的構造。
Animal[] family = new Animal[5];
family[0] = new Dog("Wrex", "dog");
family[1] = new Wolf("Fenrir", "wolf");
family[2] = new Snake("Kaa","snake");
family[3] = new Snake("Nagini", "snake");
family[4] = new Chameleon("David", "chameleon");
for(int i = 0; i < 5; i++)
{
family[i].describe();
}
這是它打印出:
大衛是一個變色龍。
David barks。
大衛移動了四條腿。
大衛從它的主人那裏得到食物。
大衛吃了咀嚼。
大衛是一個變色龍。
大衛豪爾斯。
大衛移動了四條腿。
大衛通過狩獵包裝獲取食物。
大衛吃了咀嚼。
編輯
我的描述方法是每一個動物類不同,但它們都遵循這樣的格式:
public void describe()
{
System.out.println(Chameleon.getName()+ " is a " +Chameleon.getType()+ ".");
makeSound();
move();
getFood();
eatFood();
}
編輯2
下面是每個類的粗線條和子類
public class Animal {
private static String name;
private static String type;
public Animal(String name, String type)
{
Animal.name = name;
Animal.type = type;
}
public static String getName() {
return name;
}
public void setName(String name) {
Animal.name = name;
}
public static String getType() {
return type;
}
public void setType(String type) {
Animal.type = type;
}
公共類哺乳動物延伸動物{
public Mammal(String name, String type)
{
super(name, type);
}
}
爬行動物是相同的哺乳動物
每個最後子類看起來像這樣與上述
張貼的描述方法公共課變色龍延伸爬行動物{
public Chameleon(String name, String type)
{
super(name, type);
}
我們將不得不看看什麼.describe()包含爲了給你任何答案。而且,只要你對問題的描述是足夠的,那麼很長的輸出列表就是不必要的。 –
我個人發現輸出有助於理解問題,但2或3個項目而不是5個就足夠了。 –
你可以顯示'describe'方法嗎? –