Clase anónima de Java

En este tutorial, aprenderá sobre clases anónimas en Java con la ayuda de ejemplos.

En Java, una clase puede contener otra clase conocida como clase anidada. Es posible crear una clase anidada sin dar ningún nombre.

Una clase anidada que no tiene ningún nombre se conoce como clase anónima.

Una clase anónima debe definirse dentro de otra clase. Por lo tanto, también se la conoce como clase interna anónima. Su sintaxis es:

 class outerClass ( // defining anonymous class object1 = new Type(parameterList) ( // body of the anonymous class ); ) 

Las clases anónimas generalmente extienden subclases o implementan interfaces.

Aquí, el tipo puede ser

  1. una superclase que extiende una clase anónima
  2. una interfaz que implementa una clase anónima

El código anterior crea un objeto object1, de una clase anónima en tiempo de ejecución.

Nota: Las clases anónimas se definen dentro de una expresión. Entonces, el punto y coma se usa al final de las clases anónimas para indicar el final de la expresión.

Ejemplo 1: Clase anónima que extiende una clase

 class Polygon ( public void display() ( System.out.println("Inside the Polygon class"); ) ) class AnonymousDemo ( public void createClass() ( // creation of anonymous class extending class Polygon Polygon p1 = new Polygon() ( public void display() ( System.out.println("Inside an anonymous class."); ) ); p1.display(); ) ) class Main ( public static void main(String() args) ( AnonymousDemo an = new AnonymousDemo(); an.createClass(); ) ) 

Salida

 Dentro de una clase anónima. 

En el ejemplo anterior, hemos creado una clase Polygon. Tiene un solo método display().

Luego creamos una clase anónima que extiende la clase Polygon y anula el display()método.

Cuando ejecutamos el programa, se crea un objeto p1 de la clase anónima. A continuación, el objeto llama al display()método de la clase anónima.

Ejemplo 2: Clase anónima que implementa una interfaz

 interface Polygon ( public void display(); ) class AnonymousDemo ( public void createClass() ( // anonymous class implementing interface Polygon p1 = new Polygon() ( public void display() ( System.out.println("Inside an anonymous class."); ) ); p1.display(); ) ) class Main ( public static void main(String() args) ( AnonymousDemo an = new AnonymousDemo(); an.createClass(); ) ) 

Salida

 Dentro de una clase anónima. 

En el ejemplo anterior, hemos creado una clase anónima que implementa la Polygoninterfaz.

Ventajas de las clases anónimas

En las clases anónimas, los objetos se crean siempre que son necesarios. Es decir, los objetos se crean para realizar algunas tareas específicas. Por ejemplo,

 Object = new Example() ( public void display() ( System.out.println("Anonymous class overrides the method display()."); ) ); 

Aquí, un objeto de la clase anónima se crea dinámicamente cuando necesitamos anular el display()método.

Las clases anónimas también nos ayudan a hacer nuestro código conciso.

Articulos interesantes...