Cet article étudie principalement le contenu connexe sur la surcharge, la réécriture, le polymorphisme, la liaison statique et la liaison dynamique en Java, comme suit.
Surcharge , le nom anglais est la surcharge, ce qui signifie que plus d'une méthode avec le même nom est définie dans une classe. Le nombre de paramètres, les types de paramètres et l'ordre de ces méthodes ne peuvent pas être les mêmes. Le type de retour peut être identique ou différent.
classe publique tStatiCoverload {static int height; tstaticoload () {System.out.println ("Planting a Seedling"); height = 0;} tstaticoload (int Int initialHeight) {height = initialHeight; System.out.println ("Création d'un nouvel arbre qui est" + hauteur + "Feet Tall");} STATIC VOID INFO () {System.out.print ("Tree est" ISTATIQUE STATIQUE STATIQU "pieds de haut");} Info vide statique (String S) {System.out.println (S + ": L'arbre est" + hauteur + "pieds de haut");}} classe publique TestSo {public static void main (String [] args) {tstaticoload t = new tstaticoload (5); tstaticoload.info (); tstaticoload.info ("Méthode de surcharge"); new tstaticoload ();}}OUT: La création d'un nouvel arbre de 5 pieds de haut est une méthode de surcharge de 5 pieds de haut: L'arbre mesure 5 pieds de haut plantant un semis
Réécriture, le nom anglais est le remplacement, ce qui signifie que dans le cas de l'héritage, une méthode définie dans la sous-classe qui a le même nom, le même type de retour ou le type compatible et les mêmes paramètres que les méthodes de la classe de base sont définies. C'est ce qu'on appelle la sous-classe réécriture la méthode de la classe de base. Il s'agit d'une étape nécessaire pour mettre en œuvre le polymorphisme.
Polymorphisme: Un polymorphisme est la capacité du même comportement à avoir plusieurs manifestations ou formes différentes.
classe publique StateSupper {public static String statingget () {return "Base staticget ()";} public String dynamicget () {return "Base dynamicget ()";}} classe statistique étend staticsupper {pub static staticget () {return "sub dynamicget ()";}} public string dynamicget () {return "sub dynamicget () StaticMub étend StateSupper {pub Static String staticget () {return "mub stating ()";} public String dynamicget () {return "mub dynamicget ()";}} classe publique staticPolymorphism {public static void main (String [] args) {statistique sup1 = new statisb (); System.out.println (sup1.stating ()); System.out.println (sup1.damicget ()); StateSupper sup2 = new staticMub (); System.out.println (sup2.stating ()); System.out.println (sup2.Damicget ()); }}OUT: Base staticget () sub dynamicget () base stating () mub dynamicget ()
Le concept de liaison du programme:
La liaison se réfère à l'association d'un appel de méthode avec la classe (le corps de la méthode) où se trouve la méthode. Pour Java, la liaison est divisée en liaison statique et liaison dynamique; ou il est appelé la liaison précoce et la liaison tardive.
Reliure statique:
La méthode a été liée avant l'exécution du programme et est implémentée par le compilateur ou un autre programme de connexion. Par exemple: C.
Pour Java, il peut être compris comme contraignant pendant la période de compilation du programme; Ici, il est particulièrement clair que les seules méthodes de Java sont des méthodes finales, statiques, privées et constructeurs qui sont une liaison précoce.
Liaison dynamique:
Liaison ultérieure: la liaison dynamique fait référence au compilateur sans savoir quelle méthode appeler pendant l'étape de compilation jusqu'à ce que le temps d'exécution soit lié en fonction du type de l'objet spécifique.
Si un langage met en œuvre la liaison tardive, il doit également fournir des mécanismes pour déterminer séparément le type de l'objet pendant le fonctionnement et appeler les méthodes appropriées. En d'autres termes, le compilateur ne connaît toujours pas le type d'objet pour le moment, mais le mécanisme d'appel de méthode peut l'étudier seul et trouver le bon corps de méthode. Différentes langues ont différentes façons d'implémenter la liaison tardive. Mais nous pouvons au moins penser de cette façon: ils doivent tous installer certains types d'informations spéciaux dans l'objet.
La surcharge de méthode inclut la surcharge de méthode statique et la surcharge de méthode ordinaire. La surcharge de méthode statique est une liaison statique et l'appel de méthode est via: nom de classe. méthode. La surcharge de méthode ordinaire est une liaison dynamique et les appels de méthode sont via: référence d'objet d'instance. méthode. Le constructeur peut être surchargé, mais ne peut pas être réécrit.
Les méthodes statiques peuvent être réécrites, mais aucun effet polymorphe n'est obtenu.
Résumer
Ce qui précède concerne la brève discussion de cet article sur la surcharge, la réécriture, le polymorphisme, la liaison statique et la liaison dynamique en Java. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!