Maison  >  Article  >  Java  >  Une introduction comparative à la couverture des méthodes et à la surcharge des méthodes en Java

Une introduction comparative à la couverture des méthodes et à la surcharge des méthodes en Java

不言
不言avant
2019-02-11 11:13:312390parcourir

Cet article vous apporte une introduction comparative à la couverture des méthodes et à la surcharge des méthodes en Java. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

Signature de méthode

La signature de méthode fait référence au type de paramètre, à l'ordre et au numéro de la méthode. Elle n'inclut pas le nom de la méthode.

<.>Surcharge

La surcharge doit remplir les conditions suivantes

Le nom de la méthode est le même

Au moins un des types de paramètres , le numéro et l'ordre de la méthode sont différents

Le type de retour de la méthode peut être différent

Le modificateur d'accès de la méthode peut être différent

override

si définie dans une sous-classe Une méthode dont le nom, le type de retour et la signature du paramètre correspondent exactement au nom, au type de retour et à la signature du paramètre d'une méthode dans la classe parent, alors la sous-classe remplace la méthode du parent classe.

Le remplacement doit remplir les conditions suivantes :

Le nom, la signature du paramètre et le type de retour de la méthode de sous-classe doivent être cohérents avec la méthode de la classe parent.

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

Sans cette restriction, cela entrerait en conflit avec le mécanisme de polymorphisme du langage Java.

  //创建父类型的变量,引用子类的实例
  Parent parent = new Child();
  //调用的是子类实例的方法,如果子类覆盖这个方法时,缩小了访问权限,可能会造成无法访问到子类实例的这个方法
  parent.method();
Les méthodes de sous-classe ne peuvent pas lever plus d'exceptions que les méthodes de classe parent. Les exceptions levées par les méthodes de sous-classe doivent être les mêmes que les exceptions levées par les méthodes de classe parent, ou les exceptions levées par les méthodes de classe parent. une sous-classe d'une classe dont la méthode de classe parent lève une exception.

La couverture de méthode n'existe qu'entre la sous-classe et la classe parent (y compris la classe parent directe et la classe parent indirecte). Dans la même classe, les méthodes ne peuvent être surchargées). et ne peut pas être substituée.

La méthode statique de la classe parent ne peut pas être substituée en tant que méthode non statique par la sous-classe.

La méthode non statique de la classe parent ne peut pas être substituée car une méthode statique par la sous-classe

Les méthodes privées de la classe parent ne peuvent pas être remplacées par les sous-classes

Les méthodes non abstraites de la classe parent peuvent être remplacées par les sous-classes en tant que méthodes abstraites

Similitudes et différences

1. Similitudes

Les noms de méthodes doivent être cohérents

2 Différences

La couverture des méthodes nécessite que les signatures des paramètres soient cohérentes, tandis que la méthode. la surcharge nécessite que les signatures des paramètres soient incohérentes.

Exigences de couverture Si le type de retour est cohérent ou si le type de retour de la méthode de sous-classe est plus petit que la méthode de la classe parent, la surcharge n'impose aucune restriction à ce sujet.

La substitution ne peut être utilisée que pour les sous-classes pour remplacer les méthodes de la classe parent, et la surcharge est utilisée pour les méthodes de la même classe. Toutes les méthodes (y compris les méthodes héritées de la classe parent

Il existe des exigences pour). remplaçant les autorisations d'accès et lançant des exceptions de méthodes, et il n'y a aucune restriction sur la surcharge

L'une des méthodes de la classe parent A ne peut être remplacée qu'une seule fois par une sous-classe, et une méthode peut être surchargée plusieurs fois dans le. classe dans laquelle il se trouve.

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