Les classes internes Java sont divisées en: classes internes des membres, classes imbriquées statiques, classes internes de méthode et classes internes anonymes.
Dans le monde Java, une syntaxe de classe interne anonyme est fournie pour aider tout le monde à simplifier son code. Cet article décrit brièvement ses modèles communs sous forme de code à partir d'interfaces, de classes abstraites et de classes régulières.
1. Mode d'interface
Interface publique iWriter {void write ();} public static void main (string [] args) {iWriter writer = new iwriter () {@OverridePublic void write () {System.out.println ("iWriter write ...");}}; writer.write ();} 2. Cours abstraits
classe publique Abstract Abstractwriter {public abstract void write ();} public static void main (String [] args) {abstractWriter abstractWriter = new AbstractWriter () {@OverridePublic void write (}}; abstractwriter.write ();}3. Classe générale
classe publique TextWriter implémente iWriter {@OverRidePublic void write () {System.out.print ("Text Writer ..");}} public static void main (String [] args) {textwriter textWriter = new TextWriter () {@OverRidepublic void write () {system.out.println ("textwriter 2 2 écrire ... ");}}; textwriter.write ();} 4. Utiliser dans le fil
public static void main (string [] args) {thread thread = new Thread () {@OverRidePublic void run () {new iWriter () {@OverridePublic void write () {System.out.println ("iWriter Thread Write ...");}}.. 5. Conclusion
D'après ce qui précède, nous pouvons voir qu'en fait, qu'il s'agisse d'une interface, d'une classe abstraite ou d'une classe interne anonyme dérivée des classes régulières, l'utilisation est la même. La raison pour laquelle il s'agit d'un sucre syntaxique est que lorsque le compilateur compile la classe interne anonyme en différentes classes. C'est en fait la même chose que d'écrire la classe d'implémentation séparément puis de l'appeler. Pour plus de détails, vous pouvez vous référer au répertoire généré après compilation. Comme indiqué dans la capture d'écran ci-dessous: