Le polymorphisme fait référence à l'objet d'instance de classe vers lequel une variable de référence pointera. L'appel de méthode émis par la variable de référence est une méthode implémentée dans quelle classe elle doit y être. ne peut être déterminé que pendant l’exécution du programme. (Apprentissage recommandé : Cours Java )
Parce que la classe spécifique est déterminée lors de l'exécution du programme, afin que le code source du programme puisse être modifié. Différentes classes sont implémentées, ce qui provoque le méthode spécifique appelée par la référence pour changer en conséquence.C'est-à-dire que le code spécifique lié au programme lorsqu'il est en cours d'exécution peut être modifié sans modifier le code du programme, permettant au programme de sélectionner plusieurs états d'exécution.Caractéristiques :
La référence de classe parent pointant vers la sous-classe est transformée vers le haut. Elle ne peut accéder qu'aux méthodes et propriétés appartenant à la classe parent, et pour la sous-classe. Si une méthode existe mais n'existe pas dans la classe parent, la référence ne peut pas être utilisée, même si la méthode est surchargée. Si la sous-classe remplace certaines méthodes de la classe parent, lors de l'appel de ces méthodes, les méthodes définies dans la sous-classe doivent être utilisées (connexion dynamique, appel dynamique).Il y a trois conditions nécessaires pour que Java obtienne le polymorphisme : l'héritage, la réécriture et la transformation ascendante.
La méthode prioritaire appelée, la priorité est : this.show(O), super.show(O), this.show((super)O), super.show((super )O ).Le principe d'implémentation du polymorphisme
L'invocation de méthodes objet en Java est implémentée en s'appuyant sur la table des méthodes dans les informations de classe. En général, lorsqu'une méthode d'un objet est appelée, la JVM recherche la table des méthodes de la classe d'objet pour déterminer l'adresse de référence directe de la méthode, et n'appelle ensuite réellement la méthode qu'après avoir obtenu l'adresse. . La super classe hérite de la méthode de la classe parent si la méthode n'est pas Overriding, la méthode pointera vers la méthode de la classe parent lorsqu'elle sera appelée. Si vous remplacez la méthode, elle pointe vers la zone de code de la classe.Mais la super classe aura la table de méthodes de la classe parent.
Nous savons que lorsqu'un programme Java est en cours d'exécution, les informations relatives à la classe sont placées dans la zone des méthodes. Parmi ces informations se trouve une zone appelée table de méthodes, qui contient des informations sur toutes les méthodes définies par le. type et des pointeurs vers le code réel de ces méthodes.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!