Excuses si ma terminologie est incorrecte, j'ai seulement commencé Java (et la programmation OO en général) il y a 6 semaines.Utilisation d'objets/classes héritées dans les listes liées
Un devoir à la maison m'a donné une classe d'interface:
public interface Example {
void Function();
//etc
}
Et puis j'ai deux ou trois classes qui "mettre en œuvre" cette classe d'interface, par exemple:
public class myExample1 implements Example {
void Function(){ stuff;}
public void myExclusiveFunction() { stuff;}
...
}
intérieur de la classe myExample1
, Je définis les fonctions à l'intérieur Example
, mais aussi ajouter des fonctions spécifiques à la classe myExample1
. Dans mon programme principal, j'ai créé un LinkedList<Example> eList = new LinkedList<Example>
. Dans cette liste liée, je stocke plusieurs types d'exemples (monExemple1, monExemple2, etc.). Je veux faire quelque chose comme:
eList.get(i).myExclusiveFunction();
Cependant, cela ne fonctionnera pas. Le compilateur me dit:
La méthode myExclusiveFunction() est indéfinie pour le type Example.
Comment puis-je utiliser cette fonction? Je veux vraiment que LinkedList soit capable de contenir des objets de n'importe quelle sous-classe d'exemple, et je suis sous une restriction d'affectation pour NE PAS éditer l'interface exemple.
Avec l'option 2, seront les modifications apportées aux membres à l'intérieur du 'exObj' appliquer à l'objet dans la liste chaînée? ie puis-je utiliser cette méthode pour effectuer des fonctions qui modifient le contenu de l'objet? – Paul
Vous opérez sur l'objet qui existe encore dans LinkedList, donc oui toutes les modifications apportées à exObj seront reflétées dans LinkedList. –