Lo siguiente es de Wikipedia, una explicación de la verificación de tipo estático y la verificación de tipo dinámico:
• Verificación de tipo estático: un proceso de verificación de seguridad de tipo basado en el código fuente del programa;
• Verificación de tipo dinámico: el proceso de verificación de la seguridad del tipo durante las ejecuciones del programa;
Java utiliza la verificación de tipo estático para analizar el programa durante la compilación para garantizar que no haya errores de tipo. La idea básica no es dejar que los errores de tipo ocurran durante el tiempo de ejecución.
El siguiente código es un ejemplo, después de entenderlo, comprenderá mejor cómo funciona la verificación de tipo Java Static.
Ejemplo de código
Supongamos que tenemos las siguientes clases, A y B, y B hereda A.
clase A {a me () {return this;} public void doa () {System.out.println ("do A");}} La clase B extiende un {public void doB () {System.out.println ("do B");}}}}}} { Primero, ¿qué devuelve la llamada a la nueva B (). ME ()? ¿Objeto A o B?
Se declara que el método me () devuelve un objeto A, por lo que durante la compilación, el compilador solo sabe que devuelve un objeto A. Sin embargo, devuelve el objeto B durante el tiempo de ejecución porque B hereda el método de A y se devuelve a sí mismo.
¿Cómo funciona la verificación de tipo estático?
La siguiente línea de código es ilegal, incluso si el método dob () es llamado por el objeto B. El problema es que su tipo de referencia es A. Al compilar el dispositivo, el compilador no conoce su tipo real, por lo que lo trata como tipo A.
// ilegalnew b (). me (). dob ();
Entonces, solo se puede llamar al siguiente código:
// legalnew b (). me (). doa ();
Sin embargo, podemos lanzar su tipo a B, de la siguiente manera:
// legal ((b) nuevo B (). Me ()). Dob ();
A continuación, agregamos una clase C:
La clase C extiende un {public void Dobad () {System.out.println ("do c");}} Luego, la siguiente declaración de código pasará la verificación de tipo estático:
// legal ((c) nuevo B (). Me ()). Bebad ();
El compilador no sabe su tipo real, pero se lanzará una excepción durante el tiempo de ejecución porque el tipo B no se puede convertir a Tipo C;
Lo anterior es la explicación detallada de los ejemplos de cómo la verificación de tipo estática es realizada en Java presentada por el editor. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!