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

Méthode Le remplacement est utilisé 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émontrerait la méthode primordiale, car sa méthode de "dosage" a le même moiThod Signature en tant que superclasse, classe A. La méthode "Dosomething" dans la classe C, en revanche, démontre la surcharge de méthode car elle crée une méthode complètement nouvelle.

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 serait 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, JavaUtilise le mot clé "final" et C ++ utilise le mot clé "const". La prévention de la méthode remplacée peut être bénéfique si une fonction particulière doit toujours être inchangée dans un arbre héritier.

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.

DANS D'AUTRES LANGUES