Bonjour,
J'ai deux classe MatriceTableau et MatriceCreuse qui héritent d'une classe abstract AbstractClass, et cette dernière implémente une interface MatriceCarree, cette interface contient une méthode "ajoute" qui permet de faire l'addition entre deux matrice.
j'ai redéfinit la méthode "ajoute" de l'interface dans MatriceTableau;MatriceCreuse et AbstractClass
Si les deux matrice sont de type MatriceTableau (resp MatriceCreuse) alors la méthode "ajout" de la classe MatriceTableau (resp MatriceCreuse) est exécutée.
Sinon les deux matrices sont de type différentes alors la méthode "ajout" de la classe AbstractClass est éxécuté
LA structure de mon programme est la suivante:
Mon problème est que c'est la méthode "ajout" de la classe AbstractClass qui est toujours éxécuté.
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 public interface MatriceCarree { void ajoute (MatriceCarree m) throws IllegalArgumentException ; } public abstract class AbstractClass implements MatriceCarree { public void ajoute(AbstractClass matrice) throws IllegalArgumentException { blabla} } public class MatriceTableau extends AbstractClass { public void ajoute(MatriceCarree m) { if (m instanceof MatriceTableau) {traitement1} else super.ajoute((AbstractClass)m); } public class MatriceCreuse extends AbstractClass { public void ajoute(MatriceCarree m) { if (m instanceof MatriceCreuse) {traitement1} else super.ajoute((AbstractClass)m); }
Merci pour votre aide
Partager