As classes internas do Java são divididas em: Classes internas do membro, classes aninhadas estáticas, classes internas do método e classes internas anônimas.
No mundo Java, a sintaxe da classe interna anônima é fornecida para ajudar todos a simplificar seu código. Este artigo descreve brevemente seus padrões comuns na forma de código de interfaces, classes abstratas e classes regulares.
1. Modo de interface
interface pública iwriter {void write ();} public static void main (string [] args) {iwriter writer = new iwriter () {@overridepublic void write () {system.out.println ("iwriter write ...");}}; writer.write ();} 2. Classes abstratas
public abract class abstractwriter {public abstract void write ();} public static void main (string [] args) {abstractwriter abstractwriter = new abstrateWriter () {@OverridePublic void write () {System.out.println ("abstration write ...");}};3. Classe geral
public class TextWriter implements 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 escreva ... ");}}; textWriter.Write ();} 4. Use no tópico
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 ();}}; 5. Conclusão
Do exposto, podemos ver que, de fato, seja uma interface, classe abstrata ou classe interna anônima derivada de classes regulares, o uso é o mesmo. A razão pela qual este é um açúcar sintático é que, quando o compilador compila a classe interna anônima em diferentes classes. Na verdade, é o mesmo que escrever a classe de implementação separadamente e depois chamá -la. Para detalhes, você pode consultar o diretório gerado após a compilação. Conforme mostrado na captura de tela abaixo: