Vars de ma class fille que je veux récup dans la classe mere
Résolu
Grafiteur
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
Je vous explique mon probléme :
j'ai une classe mere abstract A
et des classes fille B et C
mon modèle stock dans une ArrayList<A> des objets que j'instantie B, C
J'ai une méthode commune run() que j'ai besoin de mettre dans A, et mon problème c'est que j'ai besoin d'utiliser 2 variable d'instance appartenant a B et C, du coup je ne sais pas comment faire, quelqu'un peut m'aider ?
Alors je sais que ma demande est pas logique conceptuellement, mais je voulais éviter la redondance d'une methode qui va faire une 50ene de ligne, tout ça à cause d'un caractère et d'un entier...
j'ai cherché un peu, j'ai trouvé une methode :
mais je sais pas si ça fonctionne car le modèle est fait ainsi :
Mais peut-être avez vous une autre solution ?
peut etre qu'il y a une methode moins borderline
merci pour votre aide !
Je vous explique mon probléme :
j'ai une classe mere abstract A
et des classes fille B et C
mon modèle stock dans une ArrayList<A> des objets que j'instantie B, C
J'ai une méthode commune run() que j'ai besoin de mettre dans A, et mon problème c'est que j'ai besoin d'utiliser 2 variable d'instance appartenant a B et C, du coup je ne sais pas comment faire, quelqu'un peut m'aider ?
Alors je sais que ma demande est pas logique conceptuellement, mais je voulais éviter la redondance d'une methode qui va faire une 50ene de ligne, tout ça à cause d'un caractère et d'un entier...
j'ai cherché un peu, j'ai trouvé une methode :
A fille = modele.getA(var1, var2); if (fille.equals(B.class)) ceQueJeVeutFaire(((B) fille).getMaVar()); else if (fille.equals(C.class)) ceQueJeVeutFaire(((C) fille).getMaVar());
mais je sais pas si ça fonctionne car le modèle est fait ainsi :
ArrayList<A> liste = new ArrayListe<>(); liste.add(new B()); liste.add(new C());
Mais peut-être avez vous une autre solution ?
peut etre qu'il y a une methode moins borderline
merci pour votre aide !
A voir également:
- Comment draguer une fille de même classe
- Ia pour draguer une fille - Accueil - Intelligence artificielle
- Ouvrez cette page. dans le code de la page, modifiez la couleur de fond de la classe .pix. un code de 4 chiffres doit apparaître dans la grille. lequel ? ✓ - Forum Programmation
- Mister you feat fille - Forum Musique / Radio / Clip
- Retrouver la liste des élèves d'une classe - Forum Discussions générales
- Moi fille du roi ✓ - Forum Liseuse eBook
2 réponses
Du coup, je me dis que que je devrais mettre les 2 variables dans la class mère mais le problème que sa valeur dépent de la classe fille auquelle elle appartient (class mère est abstraite donc non instantiable)
pour info je suis en 1ere année de dut info donc peut etre que c'est la conception de mes classes qui n'est pas adapté, j'espère avoir donné assez de renseignements :)
pour info je suis en 1ere année de dut info donc peut etre que c'est la conception de mes classes qui n'est pas adapté, j'espère avoir donné assez de renseignements :)
Bonjour,
Il faudrait que tu déclares
Il faudrait que tu déclares
abstract A getMaVar();dans ta classe mère.
A a = modele.getA(var1, var2); ceQueJeVeutFaire(a.getMaVar());
Remarque :
Pour que l'égalité soit correcte on pourrait faire
fille.equals(B.class)ne peut pas fonctionner, car à gauche on a un type qui extends A (par exemple B ou C), mais à droite on a type Class<B> donc ça colle pas.
Pour que l'égalité soit correcte on pourrait faire
fille.getClass().equals(B.class)ou
fille instanceof B(et il y a encore d'autres manières pour faire)