如何在数组循环中添加多个类实例?

时间:2017-11-16 02:38:48

标签: java

主类是Zoo,Animal类通过从每个不同的Animal(其他类)调用pinStick方法来执行多态性

在动物园数组循环中,int r的值由Math.random决定,每次为1或0,导致吱吱声或咆哮,这取决于调用哪个动物类。

我的问题是,每次调用Mouse或Lion时,如何包含要打印的Monkey类的实例(在if语句中)

目的是添加一个猴子类的新实例,以便在结果打印输出中将“OoOoAhAh”与“Squeak”和“Roar”一起

public class Zoo {

private Animal[] animals;

public Zoo() {
    animals = new Animal[10];
}

public void talkAnimals() {
    int r;
    for (int i = 0; i < 10; i++) {

        r = (int) Math.round(Math.random());
        if (r == 0) {
            animals[i] = new Mouse();


        } else{
            animals[i] = new Lion();

        }

       }

    for (int i = 0; i < 10; i++) {

        animals[i].pinStick();

    }
}
public static void main(String[] args) {
    // TODO code application logic here
    new Zoo().talkAnimals();
}

}

public class Animal {

protected String name;

public Animal(){
}

public void pinStick(){

}

}

public class Mouse extends Animal {

public void pinStick(){
    System.out.print("Squeak!");

}

}

public class Monkey extends Animal {

public void pinStick(){
    System.out.print("OoOoOoAhAhAh!");
}

}

public class Lion extends Animal {


public void pinStick(){
    System.out.print("Roar!");


}

}

1 个答案:

答案 0 :(得分:-1)

  

目的是添加一个猴子类的新实例,以便在结果打印输出中将“OoOoAhAh”与“Squeak”和“Roar”一起

你可以为Monkey

声明另一个数组
private Animal[] monkeys;

构造

monkeys = new Monkey[10];

并在for循环中推送新的Monkey对象

for (int i = 0; i < 10; i++) {

    r = (int) Math.round(Math.random());
    if (r == 0) {
        animals[i] = new Mouse();


    } else{
        animals[i] = new Lion();

    }

        monkeys[i] = new Monkey();

   }

然后在for循环中执行打印作业

for (int i = 0; i < 10; i++) {

    animals[i].pinStick();
    monkeys[i].pinStick();
}
相关问题