Conseils : Classe abstraite et treemap
Bonjour,
J'ai créé une TreeMap d'animaux avec comme clé leur code et en valeur leur type Animal. (classe Animal)
J'ai créé un classe abstraite : Animal avec deux classes Mechant et Gentil qui hérite d'Animal.
Animal est une classe abstraite car les "Mechant" et "Gentil" boivent, dorment, crient, mangent... mais les Mechant ont une particularité ils possèdent la méthode attaque() (que les gentils n'ont pas).
Du coup, quand je parcours ma treemap:
Code:
1 2 3 4 5 6 7 8
| for(Animal courant : ferme.getListAnimaux()){
}
public ArrayList<Animal> getListAnimaux(){
ArrayList<Animal> listOfanimal= new ArrayList<Animal>();
for(Animal animal : animaux.values())
listOfanimal.add(animal);
return listOfanimal;
} |
je ne peux faire animal.attaque() car la méthode attaque n'a pas été définie comme abstract.
Est-ce une faute de déclarer cette méthode comme asbtract et rajouter dans gentil :
Code:
public void attaque(){}
ou bien est-ce qu'il y a un autre moyen ?
j'ai essayé des :
Code:
if(mechant) courant = (Mechant) courant
en vain...
Merci d'avance,