Внутренние классы Java разделены на: внутренние классы участников, статические вложенные классы, внутренние классы метода и анонимные внутренние классы.
В мире Java анонимный внутренний класс синтаксис предоставляется, чтобы помочь всем упростить свой код. В этой статье кратко описывается его общие закономерности в форме кода из интерфейсов, абстрактных классов и регулярных классов.
1. Интерфейс режим
Публичный интерфейс iwriter {void write ();} public static void main (string [] args) {iwriter writer = new iwriter () {@OverridePublic void write () {System.out.println ("iwriter write ...");}; writer.write ();}; 2. Аннотация классы
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 ...");};; AbstractWrite.Write ();};};};};};};};3. Общий класс
Общедоступный класс Textwriter реализует iWriter {@OverridePublic void write () {system.out.print ("текстовый writer ..");}} public static void main (string [] args) {textwriter textwriter = new Textwriter () {@OverridePublic void write () {System.Out. написать ... ");}}; textwriter.write ();} 4. Используйте в потоке
public static void main (string [] args) {Thread Think = new Thread () {@OverridePublic void run () {new iwriter () {@OverridePublic void write () {System.out.println ("IWriter write ...");}}. write ();}; tread.run (); 5. Заключение
Из вышесказанного мы можем видеть, что на самом деле, будь то интерфейс, абстрактный класс или анонимный внутренний класс, полученный из обычных классов, использование одинаково. Причина, по которой это синтаксический сахар, заключается в том, что когда компилятор собирает анонимный внутренний класс в разные классы. На самом деле это то же самое, что и написание класса реализации отдельно, а затем вызывает его. Для получения подробной информации вы можете обратиться к сгенерированному каталогу после компиляции. Как показано на скриншоте ниже: