Voila mon problème, j'ai une fonction qui permet d'ajouter dans une liste des objets appartenant a deux sous-classe (MembreL et OperateurS), elles hérite d'une super-classe nommée Equipage.
J'ai donc écris la fonction pour qu'elle accepte en paramètre un un objet de la classe Equipage.
Mais le problème arrive quand je veux réaliser une opération uniquement pour les objets appartenant a la classe OperateurS, puisque qu'un appel d'une fonction de cette classe ne fonctionne pas avec un objet de la classe Equipage. Vous me suivez ?
Code simplifié de ma fonction :
PS: this.nom est de type String, ce qui est demandé en paramètre par la fonction setVaisseau()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public void ajoutMembre(Equipage mec){ this.membres.add(mec); if (mec instanceof OperateurS){ mec.setVaisseau(this.nom); //setVaisseau() est une fonction située dans le cose de la classe OperateurS System.out.println(mec.toString()); } }
Et voici l'erreur reçue :
J'aimerai donc savoir si il existe un moyen de specifier qu'alors l'objet est pris en tant que OperateurS et non Equipage...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Vaisseaux.java:39: error: cannot find symbol mec.setVaisseau(this.nom); ^ symbol: method setVaisseau(String) location: variable mec of type Equipage
Partager