icon java override anonymous-inner-class

java - icon - jlabel



¿Qué es este tipo de método anulado llamado en Java? (3)

Esa es una clase interna anónima . Básicamente crea una nueva clase que deriva del especificado ( Button en este caso, aunque puede usar la misma técnica para implementar interfaces) y anula los métodos apropiados. Puede contener otros métodos también, pero solo estarían disponibles dentro de esa clase.

La clase tiene acceso a variables locales finales dentro del mismo método, y si está escribiendo un método de instancia también tiene una referencia implícita a this (para que pueda llamar a otros métodos en su clase "principal").

Soy relativamente nuevo en Java y estoy usando una nueva API. Encontré esta anulación de método y no estoy seguro de cómo se llama esto:

public void exampleMethod() { Button loginButton = new Button("login"){ public void onSubmit(){ //submit code here } }; }

Por lo que entiendo, esto está anulando el método onSubmit de la clase Button. Nunca me he encontrado con este tipo de anulación antes. ¿Hay un nombre específico para eso? Quiero leer más sobre eso, pero no puedo encontrarlo. Todas mis búsquedas hasta ahora resultan en anulación de método regular al crear una nueva clase, que es con lo que ya estoy familiarizado.

Agradecería si alguien pudiera señalarme en la dirección correcta.

Gracias.


Esa es una clase interna anónima .

En el ejemplo anterior, en lugar de crear una private class que amplíe Button , creamos una subclase de Button y proporcionamos la implementación del método reemplazado en línea con el resto del código.

Como esta nueva clase se crea sobre la marcha, no tiene nombre, por lo tanto es anónima . Como está definido dentro de otra clase, es una clase interna anónima.

Puede ser un atajo muy útil, especialmente para las clases de Listener , pero puede hacer que su código sea difícil de seguir si se deja llevar y las definiciones del método en línea son demasiado largas.