Bonjour,

J'ai créé une classe qui hérite de la classe Vector dans laquelle j'ai redéfinit les méthodes add() et remove().

Voilà son code
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
26
27
28
29
30
 
public class VectorCouchesSupplementaires extends Vector<Layer>{
	/**
         * 
         */
	private static final long serialVersionUID = 4526120306651519039L;
 
	public VectorCouchesSupplementaires(){
	}
 
	public boolean remove(Layer layer){
		super.remove(layer);
		//Mise à jour du tableau des couches supplémentaires
		JTablePerso.updateTableaux();
 
		//Mise à jour de la table couches supplémentaires
		Execution.UpdateVisibiliteCouche(false,layer.getName().trim(),LayerName.siret,LayerName.mlsm);
		return true;
	}
 
	public boolean add(Layer layer){
		super.add(layer);
		//Mise à jour du tableu des couches supplémentaires
		JTablePerso.updateTableaux();
 
		//Mise à jour de la table couches supplémentaires
		Execution.UpdateVisibiliteCouche(true,layer.getName().trim(),LayerName.siret,LayerName.mlsm);
		return true;
	}
}
Ma question est assez simple, comment empêcher que dans une classe autre, il soit possible d'appeler la méthode monVecteurPerso.remove(parametre) avec un paramètre qui ne soit pas du type Layer? Cette interdiction fonctionne très bien avec la méthode add(), mais pour remove(), si le paramètre n'est pas de type Layer, c'est la méthode remove() de la classe Vector qui est appelée...

Merci beaucoup.