代码之家  ›  专栏  ›  技术社区  ›  Marius

管理所有抽象方法

  •  -4
  • Marius  · 技术社区  · 7 年前

    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 回复  |  直到 7 年前
        1
  •  0
  •   Anas EL KORCHI    7 年前

    我假设SetBioture在一种列表中添加了一个新的生物

    for(Creature c : creatures){
      c.setAge(c.getAge() +1 );
    }