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:
je ne peux faire animal.attaque() car la méthode attaque n'a pas été définie comme abstract.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
Est-ce une faute de déclarer cette méthode comme asbtract et rajouter dans gentil :
ou bien est-ce qu'il y a un autre moyen ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part public void attaque(){}
j'ai essayé des :
en vain...
Code : Sélectionner tout - Visualiser dans une fenêtre à part if(mechant) courant = (Mechant) courant
Merci d'avance,
Partager