Die internen Klassen von Java sind unterteilt in: interne Klassen, statische verschachtelte Klassen, interne Klassen mit Methoden und anonyme interne Klassen.
In der Java -Welt wird eine anonyme interne Klassensyntax bereitgestellt, um jedem zu helfen, seinen Code zu vereinfachen. Dieser Artikel beschreibt kurz seine gemeinsamen Muster in Form von Code aus Schnittstellen, abstrakten Klassen und regulären Klassen.
1. Schnittstellenmodus
public interface iwriter {void write ();} public static void main (String [] args) {iWriter writer = new iWriter () {@Overridepublic void write write () {System.out.println ("iWriter write ...");}}; writer.write ();};};};};};};};};};};}; 2. Zusammenfassung Klassen
public Abstract Class AbstractWriter {public abstract void write ();} public static void main (String [] args) {AbstractWriter AbstractWriter = new AbstractWriter () {@Overridepublic void Write () {System.out.Println ("AbstractWriter Write ...");3. Allgemeine Klasse
public class textWriter implementiert iwriter {@Overridepublic void write () {System.out.print ("Textautor ..");}} public static void main (String [] args) {textWriter textWriter = new Textwriter () {@Overridepublic void Write () {) schreiben ... ");}}; TextWriter.write ();} 4. Verwenden Sie im Thread
public static void main (String [] args) {Thread = new Thread () {@Overridepublic void run () {new iWriter () {@Overridepublic void write () {System.out.println ("iWriter thread ...");}}}. 5. Schlussfolgerung
Aus dem obigen können wir sehen, dass die Verwendung in der Tat, unabhängig davon, ob es sich um eine Schnittstelle, eine abstrakte Klasse oder eine anonyme interne Klasse handelt, die Verwendung gleich ist. Der Grund, warum dies ein syntaktischer Zucker ist, ist, dass wenn der Compiler die anonyme interne Klasse in verschiedene Klassen kompiliert. Dies ist tatsächlich das gleiche wie das separates Schreiben der Implementierungsklasse und dann aufzurufen. Einzelheiten können Sie nach der Zusammenstellung auf das generierte Verzeichnis verweisen. Wie im folgenden Screenshot gezeigt: