Bonjour,
voilà, j'ai un très long programme et un petit problème![]()
J'ai une classe abstraite Animal et 2 animaux dérivant de Animal, disons Chat et Girafe. J'ai aussi créé une interface AnimauxDeCompagnie qui contient une méthode jouer(). Chat implémente AnimauxDeCompagnie mais pas Girafe.
Mon problème est que j'ai une nouvelle classe Zoo qui utilise un tableau private, nommons le TableauAnimal contenant des éléments Animal. Lorsqu'un Animal est aussi AnimauxDeCompagnie, je veux pouvoir faire tableauAnimal[i].jouer() mais à la compilation, j'ai une erreur car Animal ne contient pas la méthode jouer(). Une idée ?
Voici une idée du programme : Dans mon exemple, j'utilise aussi une méthode estUnAnimalDeCompagnie() dans un if() ; je pense que ça serait mieux si je pouvais m'en passer.
Merci !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 public abstract class Animal{ public boolean estUnAnimalDeCompagnie(){ return true; } ...} public interface AnimauxDeCompagnie{ public void jouer(); public boolean estUnAnimalDeCompagnie() ... } public class Chat extends Animal implements AnimauxDeCompagnie{ public void jouer(){ System.out.println("Le chat joue"); } public class Girafe extends Animal{ ... } public class Zoo{ private Animal [] tableauAnimal = new tableauAnimal[10]; //on remplit le tableau de girafes et de chats for(int i=0;i<10;i++){ if(tableauAnimal[i].estUnAnimalDeCompagnie()) {tableauAnimal[i].jouer()} } }
Partager