0 votes

Puis-je remplacer une méthode abstraite écrite dans une classe parentale par un nom différent dans une classe enfantine ?

abstract class SettingSaver
    {

        public abstract void add(string Name, string Value);
        public abstract void remove(string SettingName);

    }

class XMLSettings : SettingSaver
    {

        public override void add(string Name, string Value)
        {
            throw new NotImplementedException();
        }

        public override void remove(string SettingName)
        {
            throw new NotImplementedException();
        }

    }

Est-il possible de changer le nom de la fonction add dans la classe XMLSettings en addSetting mais de s'assurer qu'elle remplace la fonction add dans le SettingSaver ? Je sais qu'il faut absolument la remplacer dans les classes dérivées mais je veux juste savoir si je peux utiliser un nom différent :) Merci d'avance :D

9voto

Jon Skeet Points 692016

Non, vous ne pouvez pas changer le nom d'une méthode lorsque vous la remplacez en C#.

Bien entendu, vous pouvez surcharger la méthode et la mettre en œuvre en appelant simplement un fichier différents méthode.

(En ce qui concerne les conventions d'appellation, les méthodes sont typiquement PascalCased, commençant par une lettre majuscule. Les paramètres sont typiquement en camelCased, commençant par une lettre minuscule).

3voto

Martin Harris Points 18057

Non, vous ne pouvez pas.

Vous pouvez ajouter une autre méthode qui contient la même fonctionnalité, mais vous ne pouvez pas cacher ou renommer la méthode héritée.

À titre d'exemple, la classe Stream du framework possède une méthode appelée Fermer() . C'est exactement la même chose que d'appeler Dispose(), mais avec un nom qui correspond mieux au concept d'"ouverture" d'un steam pour commencer à l'utiliser. Ils n'ont pas supprimé la méthode Dispose(), mais ont simplement donné au client un autre moyen (mieux nommé) d'accéder à la même fonctionnalité.

3voto

David Neale Points 8596

Non - cela constituerait une certaine violation Polymorphisme (tout ce que le parent peut faire, les enfants doivent pouvoir le faire).

Vous pourriez créer une nouvelle méthode et utiliser les métadonnées de l'ancienne méthode pour indiquer à toute personne développant la classe d'utiliser la nouvelle classe.

1voto

mdma Points 33973

Le nom de la méthode et les arguments permettent d'identifier une méthode. Si vous changez le nom de la méthode, vous identifiez une méthode différente. Étant donné que la surcharge consiste à définir la même méthode dans une sous-classe, vous devez utiliser le même nom de méthode.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X