Masquer une méthode héritée

AbyssDev Messages postés 3 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 27 février 2006 - 27 févr. 2006 à 11:33
AbyssDev Messages postés 3 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 27 février 2006 - 27 févr. 2006 à 20:44
Tout d'abord bonjour à tous.
J'ai créé une classe ListePrenoms qui hérite de ArrayList.
Ma classe ListePrenoms dispose d'une méthode Add qui prend en paramètre un objet de type Prénom.
Cette méthode utilise la méthode Add de la classe de base.
Je souhaite toutefois empêcher l'utilisation de la méthode Add de ArrayList sur une instance de ListePrenoms,
car je veux m'assure que "l'utilisateur" passe bien un objet de type Prenom à la méthode Add.
Grosso modo, je veux masquer la méthode Add de ArrayList au profit de ma méthode Add qui prend en paramètre un type bien précis.
J'espère etre suffisament clair,
merci d'avance.

4 réponses

TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
27 févr. 2006 à 11:47
Fait ta collection fortement typé en héritant de collection base.

::|The S@ib|::
MVP C#.NET
0
AbyssDev Messages postés 3 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 27 février 2006
27 févr. 2006 à 11:56
Merci pour votre réponse,
effectivement, ceci semble être plus que judicieux.
0
boumarsel Messages postés 298 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 9 juillet 2008 1
27 févr. 2006 à 18:57
dans un cas plus general, je pense que le modificateur override permet de redéfinir une méthode de la classe de base.

un exemple extrait de msdn:

public override double Area()
{
return (6*(base.Area()));
}
tu peux appeler la méthode de la classe de base par: base.Area()
0
AbyssDev Messages postés 3 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 27 février 2006
27 févr. 2006 à 20:44
Tout à fait, mais redéfinir une méthode n'était pas exactement le besoin, car je souhaitais une signature différente de celle de la classe de base et "cacher" la méthode de la classe de base.
Mais effectivement j'étais parti sur une fausse piste...
Il fallait repartir de CollectionBase et pas de ArrayList.
0
Rejoignez-nous