Clases anónimas en Java

Objetos y clases en Java

En Java se puede hacer que una clase contenga otra clase, y se puede instanciar directamente sin proporcionar ningún nombre de clase.

Se utiliza principalmente para crear un objeto cuando lo necesitamos y ejecutar una tarea específica, lo que puede hacer que el código sea más conciso.

Las clases anónimas son clases que no pueden tener nombre, no pueden ser referenciadas, solo se pueden declarar en el momento de su creación usandonewla sentencia para declararlas.

Formato de sintaxis de la clase anónima:

class outerClass {

    // 定义一个匿名类
    object1 = new Type(parameterList) {
         // 匿名类代码
    };
}

El código anterior crea un objeto de clase anónima object1, la clase anónima se define en forma de expresión, por lo que al final se usa un punto y coma;para terminar.

Las clases anónimas generalmente heredan de una clase padre o implementan una interfaz.

Una clase anónima hereda de una clase padre

En el siguiente ejemplo, se crea la clase Polygon, que tiene solo un método display(). La clase AnonymousDemo hereda de la clase Polygon y sobrescribe el método display() de la clase Polygon:

Ejemplo

class Polygon {
   public void display() {
      System.out.println("Dentro de la clase Polygon");
   }
}

class AnonymousDemo {
   public void createClass() {

      // La clase anónima creada hereda de la clase Polygon
      Polygon p1 = new Polygon() {
         public void display() {
            System.out.println("Dentro de la clase anónima.");
         }
      };
      p1.display();
   }
}

class Main {
   public static void main(String[] args) {
       AnonymousDemo an = new AnonymousDemo();
       an.createClass();
   }
}

Al ejecutar el código anterior, se creará el objeto p1 de la clase anónima, que llamará al método display() de la clase anónima, y el resultado de salida es:

Dentro de una clase anónima.

Una clase anónima implementa una interfaz

El siguiente ejemplo crea una clase anónima que implementa la interfaz Polygon:

Ejemplo

interface Polygon {
   public void display();
}

class AnonymousDemo {
   public void createClass() {

      // La clase anónima implementa una interfaz
      Polygon p1 = new Polygon() {
         public void display() {
            System.out.println("Dentro de la clase anónima.");
         }
      };
      p1.display();
   }
}

class Main {
   public static void main(String[] args) {
      AnonymousDemo an = new AnonymousDemo();
      an.createClass();
   }
}

El resultado de salida es:

Dentro de una clase anónima.

Objetos y clases en Java

Otras extensiones