Skip to main content

Qu'est-ce que la méthode remplacée?

La mise à niveau de la méthode est utilisée dans la programmation orientée objet dans une hiérarchie d'héritage, et elle se produit lorsqu'une méthode définie dans une superclasse est redéfinie dans une sous-classe.Habituellement, la méthode de sous-classe fait quelque chose de différent de la méthode de superclasse ou développe une capacité de la superclasse, mais cela ne doit pas être le cas.La méthode subalterne se produit chaque fois qu'une méthode de superclasse est redéfinie dans une sous-classe, quel que soit le contenu de la méthode redéfinie.Les signatures de méthode redéfinies doivent être exactement les mêmes.

Par exemple, une classe A peut contenir une méthode appelée Dosomething, et cette méthode ne prend aucun paramètre d'entrée.De plus, les classes B et C peuvent être des sous-classes de la classe A. La classe B peut contenir une méthode appelée Dosomething, qui ne prend aucun paramètre d'entrée, et la classe C peut contenir une méthode Dosomething qui prend un nombre en tant que paramètre d'entrée.Dans cet exemple, seule la classe B démontrera la méthode primordiale, car sa méthode de dosage a la même signature de méthode que sa superclasse, classe A. La méthode de dosage de la classe C, d'autre part, démontre la surcharge de la méthode car elle crée une toute nouvelle méthode.

L'héritage virtuel en C ++ est un autre exemple de remplacement de la méthode.Les méthodes virtuelles dans les superclasses peuvent ou non être implémentées, mais toute définition de sous-classe est une instance de méthode remplacée.Lorsqu'une méthode est remplacée dans une sous-classe, la méthode de la superclasse n'est appelée que si elle est invoquée explicitement.Cette façon spécifique d'appeler une méthode remplacée est souvent censée masquer l'implémentation de la superclasse.

Bien que la mise en œuvre de la méthode soit très flexible, toutes les méthodes ne peuvent pas être remplacées, et il y a des moments où cette rigidité peut être préférable.Dans Java et C ++, des mots clés spécifiques peuvent être appliqués dans les signatures de méthode pour empêcher une méthode d'être remplacée dans une sous-classe.Pour ce faire, Java utilise le mot-clé final et C ++ utilise le mot clé const.La prévention de l'empressement de la méthode peut être bénéfique si une fonction particulière doit toujours être inchangée dans un arbre de succession.

En général, les méthodes simples qui obtiennent de petites données ne doivent pas avoir besoin d'être remplacées.Les cas qui ont tendance à bénéficier le plus de l'empresseur sont lorsqu'une sous-classe vise à ajouter des fonctionnalités à une méthode de superclasse sans créer une méthode entièrement nouvelle pour le faire.Des cas inhabituels dans lesquels une méthode doit être complètement refait pour un type spécifique d'objet pourrait également bénéficier de cette technique.Chaque fois qu'une méthode est remplacée, il est important pour le programmeur de commenter adéquatement les méthodes de superclasse et de sous-classe.Idéalement, ces commentaires devraient clarifier ce que fait chaque variante de la méthode, ainsi que comment et pourquoi ils diffèrent.