Maison  >  Article  >  Java  >  Comment distinguer les concepts de réécriture et de surcharge en Java

Comment distinguer les concepts de réécriture et de surcharge en Java

王林
王林avant
2020-07-04 16:48:292620parcourir

Comment distinguer les concepts de réécriture et de surcharge en Java

Surcharge (Surcharge)

(apprentissage recommandé : programme d'entrée Java)

méthode Surcharge est un moyen pour une classe de gérer différents types de données de manière unifiée. Plusieurs fonctions portant le même nom existent en même temps, avec un nombre/type de paramètres différent. La surcharge est une manifestation du polymorphisme dans une classe.

La surcharge de méthodes en Java signifie que vous pouvez créer plusieurs méthodes dans une classe. Elles ont le même nom mais des paramètres et des définitions différents.

Lors de l'appel de méthodes, le nombre spécifique et le type de paramètres qui leur sont transmis déterminent la méthode à utiliser.

En cas de surcharge, le nom de la méthode doit être le même, mais le type et le numéro du paramètre sont différents, et le type de valeur de retour peut être identique ou différent. Le type de valeur de retour ne peut pas être utilisé comme critère pour distinguer les fonctions surchargées.

Lorsqu'une méthode de classe parent est modifiée par défaut, elle ne peut être remplacée que par ses sous-classes dans le même package. Si elle n'est pas dans le même package, elle ne peut pas être remplacée.

Lorsqu'une méthode d'une classe parent est prototypée, elle est non seulement remplacée par ses sous-classes dans le même package, mais peut également être remplacée par des sous-classes dans différents packages.

Les règles surchargées

  • doivent avoir des listes de paramètres différentes

  • peuvent avoir un type de retour différent, tant que la liste des paramètres est différente ;

  • peut avoir différents modificateurs d'accès

  • peut lancer différentes exceptions ;

Règles de substitution des méthodes

  • La liste des paramètres doit être exactement la même que la méthode remplacée, sinon elle ne peut pas l'appeler une réécriture mais une surcharge.

  • Le type de retour doit toujours être le même que le type de retour de la méthode surchargée, sinon il ne peut pas être appelé un remplacement mais une surcharge.

  • La restriction du modificateur d'accès doit être supérieure au modificateur d'accès de la méthode remplacée (public>protected>default>private)

  • Répétez la La méthode écrite ne doit pas lever une nouvelle exception vérifiée ou une exception vérifiée qui est plus large que la déclaration de méthode remplacée. Par exemple : une méthode de la classe parent déclare une exception vérifiée IOException. Lors de la substitution de cette méthode, vous ne pouvez pas lancer d'exception. Vous ne pouvez lancer que des exceptions de sous-classes de IOException, et vous pouvez lancer des exceptions non vérifiées.

Fonctionnalités de surcharge et de réécriture (écrasement)

(Recommandation de didacticiel vidéo : tutoriel vidéo Java)

Fonctionnalités de surcharge

1. Lorsque vous utilisez la surcharge, vous ne pouvez utiliser que différents styles de paramètres. Par exemple, différents types de paramètres, un nombre différent de paramètres, un ordre différent des paramètres (bien sûr, plusieurs types de paramètres dans la même méthode doivent être différents, par exemple, cela peut être fun(int, float), mais cela ne peut pas être fun(int , int ));

2. La surcharge ne peut pas être effectuée par les autorisations d'accès, les types de retour et les exceptions levées

3. Le type d'exception et le nombre de méthodes n'affecteront pas la surcharge ; >

4. Pour l'héritage, si une méthode a un accès privilégié dans la classe parent, elle ne peut pas être surchargée dans la sous-classe. Si elle est définie, elle définira uniquement une nouvelle méthode. Elle n'obtiendra pas l'effet de surcharge.

Fonctionnalités de remplacement

1. L'indicateur de la méthode remplacée doit correspondre complètement à l'indicateur de la méthode remplacée pour obtenir l'effet de remplacement

2 ; . La valeur de retour de la méthode surchargée doit être cohérente avec la valeur de retour de la méthode surchargée

3. L'exception levée par la méthode surchargée doit être cohérente avec l'exception levée par la méthode surchargée, ou ses sous-classes. ;

4. La méthode remplacée ne peut pas être privée, sinon seule une nouvelle méthode est définie dans sa sous-classe et elle n'est pas écrasée.

Résumé

surcharge (surcharge)

Au moins un type, un numéro et un ordre de paramètre sont différents.

Impossible de surcharger les noms de méthodes qui ont uniquement des valeurs de retour différentes.

Existe dans les classes parentes, les sous-classes et les classes similaires.

override (réécriture)

Le nom de la méthode, les paramètres et la valeur de retour sont les mêmes.

Les méthodes de sous-classe ne peuvent pas réduire les droits d'accès des méthodes de classe parent.

Les méthodes de sous-classe ne peuvent pas lever plus d'exceptions que les méthodes de classe parent (mais les méthodes de sous-classe ne peuvent lever aucune exception).

existe entre la classe parent et la classe enfant.

Les méthodes sont définies comme définitives et ne peuvent pas être remplacées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer