我创建了一个名为Creature的抽象类和两个扩展Creature的类,名为Human和Dog。还有一些方法,比如getAge和setAge,你可以看到:
public abstract class Creature {
public abstract void born(String name);
public abstract void setName(String name);
public abstract void setAge(int age);
public abstract int getAge();
public abstract String getName();
}
public class Human extends Creature {
private String name;
private int age;
public void born(String name){
setName(name);
setAge(0);
}
// getters and setters
}
public class Dog extends Creature {
private String name;
private int age;
public void born(String name){
setName(name);
setAge(0);
}
// getters and setters
}
然后我做到了:
private static Creature creature;
String string = new Random().nextInt(2) == 1 ? "Human" : "Dog";
if (string.equals("Human")) {
setCreature(new Human());
} else {
setCreature(new Dog());
}
for (int i = 0; i < 5; i++) {
creature.born("Name" + i);
// here are born 5 creatures
}
// after one year get all creatures and set their age +1
我的问题是,我怎样才能让所有出生的生物在一年后将他们的年龄设为+1?
答案 0 :(得分:0)
我假设setCreature在一种列表中添加一个新生物
你只需要迭代列表并增加年龄而不必关注生物的类型
for(Creature c : creatures){
c.setAge(c.getAge() +1 );
}