AMIR

samedi 19 avril 2014

Qu'est-ce que la redéfinition de méthode?

La méthode de substitution est utilisé dans la programmation orientée objet dans une hiérarchie d'héritage, et il se produit lorsque une méthode définie dans une superclasse est redéfinie dans une sous-classe. Habituellement, la méthode de la sous-classe ne quelque chose de différent que la méthode de superclasse ou étend sur une capacité de la superclasse, mais cela ne doit pas être le cas. Méthode de substitution se produit chaque fois une méthode de classe 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 "faireQuelqueChose," et cette méthode ne prend pas de paramètres d'entrée. En outre, les classes B et C des sous-classes de la classe A. Classe B peut contenir une méthode appelée "faireQuelqueChose," qui ne prend pas de paramètres d'entrée, et la classe C peut contenir une méthode "faireQuelqueChose" qui prend un nombre comme un paramètre d'entrée. Dans cet exemple, seule classe B démontrerait méthode de substitution, parce que sa méthode "faireQuelqueChose" a la même signature de méthode que sa superclasse, classe A. La méthode "faireQuelqueChose" dans la classe C, d'autre part, démontre la surcharge de méthode, car elle crée une méthode entièrement nouvelle.

L'héritage virtuel en C + + est un autre exemple de méthode de substitution. Les méthodes virtuelles dans des super pourraient ou ne pourraient pas être mises en œuvre, mais aucune définition de la sous-classe d'entre eux est un exemple de méthode de substitution. Lorsqu'une méthode est substituée dans une sous-classe, le procédé de la super-classe n'est pas appelé à moins qu'il soit demandé explicitement. De cette façon spécifique de l'appel d'une méthode substituée est souvent dit à «cacher» la mise en œuvre de la superclasse.

Bien que méthode de substitution est très flexible, toutes les méthodes peuvent être remplacées, et il y a des moments où cette rigidité peut être préférable. En Java et C + +, des mots clés spécifiques peuvent être appliquées dans les signatures de méthode pour éviter une méthode d'être de substitution dans une sous-classe. Pour ce faire, Java utilise la "finale" mot-clé , et C + + utilise la "const" mot-clé. Prévention méthode de substitution peut être bénéfique si une fonction particulière doit toujours être inchangée pendant un arbre d'héritage.

En général, les méthodes simples qui obtiennent de petits morceaux de données ne devraient pas avoir à être redéfinie. Les cas qui ont tendance à bénéficier le plus de la substitution sont quand une sous-classe vise à ajouter des fonctionnalités à une méthode de classe sans créer une méthode entièrement nouvelle pour le faire. Cas exceptionnels où une méthode a besoin d'être entièrement refaite pour un type spécifique d'objet peuvent également bénéficier de cette technique. Chaque fois qu'une méthode est substituée, il est important pour le programmeur de commenter de manière adéquate à la fois la superclasse et les méthodes de sous-classes. Idéalement, ces commentaires devraient préciser ce que chaque variante de la méthode fait, ainsi que comment et pourquoi elles diffèrent.