Las clases internas de Java se dividen en: clases internas de miembro, clases anidadas estáticas, clases internas de método y clases internas anónimas.
En el mundo de Java, se proporciona una sintaxis de clase interna anónima para ayudar a todos a simplificar su código. Este artículo describe brevemente sus patrones comunes en forma de código de interfaces, clases abstractas y clases regulares.
1. Modo de interfaz
interfaz pública iWriter {void write ();} public static void main (string [] args) {iwriter escritor = new iWriter () {@OverridePublic Void Write () {System.out.println ("iWriter Write ...");}}; Writer.Write ();} 2. Clases abstractas
public abstract class abstractWriter {public abstract void write ();} public static void main (string [] args) {resumenwriter abstractwriter = new AbstractWriter () {@OverridePublic Void Write () {System.out.Println ("Write ...");}}; AbstractWriter.Write ();}3. Clase general
La clase pública TextWriter implementa iWriter {@OverridePublic Void Write () {System.out.print ("Text Writer ..");}} public static void main (string [] args) {Textwriter textriter = new Textwriter () {@OverridePublic Void Write () {System.Println ("TextWriter 2 escribir ... ");}}; textwriter.write ();} 4. Use en el hilo
public static void main (string [] args) {Thread Thread = new Thread () {@OverridePublic Void run () {new iWriter () {@OverridePublic Void Write () {System.out.println ("iWriter Thread Write ...");}}. Write ();}}; threun ();} 5. Conclusión
De lo anterior, podemos ver que, de hecho, ya sea una interfaz, clase abstracta o una clase interna anónima derivada de clases regulares, el uso es el mismo. La razón por la cual esto es un azúcar sintáctico es que cuando el compilador compila la clase interna anónima en diferentes clases. Esto es en realidad lo mismo que escribir la clase de implementación por separado y luego llamarla. Para más detalles, puede consultar el directorio generado después de la compilación. Como se muestra en la captura de pantalla a continuación: