Supongamos que tenemos una interfaz y queremos hacer un clase anonima que implemente esta Interfaz pero necesitamos inicializar valores. No podemos llamar al constructor dado que es una clase anonima por lo tanto podemos inicializar el código de la siguiente manera:
public class Main { public static void main(String[] args) { IEjemplo ejemplo = new IEjemplo() { private String saludo; //Inicializador { saludo = "Holass"; System.out.println("Inicializo en el inicializador!!"); } @Override public void metodoDeEjemplo() { System.out.println(saludo); } }; ejemplo.metodoDeEjemplo(); } }
Para la interfaz:
public interface IEjemplo { void metodoDeEjemplo(); }
Y la salida del programa seria:
Inicializo en el inicializador!!
Holass
La verdad no tenia idea que se podía hacer eso en Java.
Todos los días se aprende algo nuevo.