2017-08-23 3 views
-4

J'ai créé une classe abstraite nommée Créature et deux classes qui étendent la Créature nommée Homme et Chien. Il y a aussi quelques méthodes comme getAge et setAge, comme vous pouvez le voir:Gérer toutes les méthodes abstraites

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 
} 

Et puis je fais ceci:

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 

Ma question est, comment puis-je obtenir toutes les créatures nées et après un an définir leur âge avec +1?

+1

Quelle est la définition de _one year_ pour vous? Voulez-vous incrémenter le champ d'âge avec un planificateur? –

+0

Souhaitez-vous atteindre votre cible sans persister? – Gamby

+0

Non, je veux juste faire naître toutes les créatures et ensuite faire une autre méthode pour augmenter leur âge immédiatement. – Marius

Répondre

0

Je suppose que setCreature ajouter une nouvelle créature dans une sorte de liste

vous suffit de faire est de parcourir la liste et incrémenter l'âge sans faire attention au type de créature

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

Je ne veux pas ajouter la classe de créature dans une liste, je veux juste que toutes les créatures naissent dans la boucle for. – Marius

+0

Alors, comment stockez-vous vos créatures si elles ne sont pas dans une liste ou dans un autre conteneur de stockage? Vous devez les suivre ou il n'y a aucun moyen d'augmenter leur âge ou de les obtenir de toute façon. – xander