Bonjour,

J'ai un problème pour lequel je n'arrive pas à mettre en forme une solution propre.

J'ai une classe abstraite mère "ComposantGraphique". Des classes filles "Point", "Droite", "Segment", etc.

J'ai une fonction :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
public abstract class ComposantGraphique {
    public abstract LinkedList<Point> pointDIntersection(ComposantGraphique cg);
}
En en gros, je dois renvoyer les intersections d'un composant avec un autre.

Dans chaque classe fille, je voudrais donc pouvoir décliner les cas :
pointDIntersection(Droite d)
pointDIntersection(Segment AB)
etc

Comment dois-je faire si je veux éviter de passer par une liste de instanceof dans chaque classe fille :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
class Droite extends ComposantGraphique {
    public LinkedList<Point> pointDIntersection(ComposantGraphique cg) {
        if(cg instanceof Droite {pointDIntersection((Droite)cg);}
        if(cg instanceof Segment {pointDIntersection((Segment)cg);}
        ...
    }
}