Ce qui suit est de Wikipedia, une explication de la vérification de type statique et de la vérification des types dynamiques:
• Vérification des types statiques: un processus de vérification de la sécurité du type basé sur le code source du programme;
• Vérification du type dynamique: le processus de vérification de la sécurité du type pendant les exécutions du programme;
Java utilise la vérification des types statiques pour analyser le programme pendant la compilation pour s'assurer qu'il n'y a pas d'erreurs de type. L'idée de base est de ne pas laisser les erreurs de type se produire pendant l'exécution.
Le code suivant est un exemple, après l'avoir compris, vous comprendrez mieux comment fonctionne la vérification du type statique Java.
Exemple de code
Supposons que nous ayons les classes suivantes, A et B, et B hérite de A.
classe A {a me () {return this;} public void doa () {System.out.println ("do a");}} classe B étend un {public void dob () {System.out.println ("do b");}} Tout d'abord, quel sera l'appel à New B (). Me () reviendra? Objet A ou B?
La méthode Me () est déclarée renvoyer un objet A, donc pendant la compilation, le compilateur sait seulement qu'il renvoie un objet A. Cependant, il renvoie l'objet B pendant l'exécution car B hérite de la méthode d'A et se renvoie.
Comment fonctionne la vérification des types statiques?
La ligne de code suivante est illégale, même si la méthode dob () est appelée par l'objet B. Le problème est que son type de référence est A. Lors de la compilation de l'appareil, le compilateur ne connaît pas son type réel, il le traite donc comme le type A.
// illégalnew b (). me (). dob ();
Ainsi, seul le code suivant peut être appelé:
// LegalNew B (). Me (). Doa ();
Cependant, nous pouvons lancer son type à B, comme suit:
// légal ((b) new b (). me ()). dob ();
Ensuite, nous ajoutons une classe C:
La classe C étend un {public void dobad () {System.out.println ("do c");}} Ensuite, l'instruction de code suivante passera la vérification du type statique:
// légal ((c) new b (). me ()). bebad ();
Le compilateur ne connaît pas son type réel, mais une exception sera lancée pendant l'exécution car le type B ne peut pas être converti en type C;
Ce qui précède est l'explication détaillée des exemples de la façon dont la vérification des types statiques est effectuée dans Java présentée par l'éditeur. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!