objects example java object interface

java - example - Crear un "objeto" de una interfaz



object[] en java (3)

Esta es una creación de clase anónima. La clase de la instancia creada anteriormente extiende java.lang.Object e implementa la interfaz I. Entonces, técnicamente, el código anterior crea un objeto Object.

Hoy tuve una pequeña discusión con un amigo que afirmó que se puede crear un objeto de interfaz. Cuando dije que era imposible, me mostró la siguiente pieza de código, que parecía similar a las clases anónimas. Ahora la pregunta es, ¿cuál es la respuesta correcta?

public interface I { public void f(); } public class InterfaceTest { public static void main(String []args){ new I(){ @Override public void f() { System.out.println("HELLO"); } }; } }

¿Se puede llamar realmente esto crear un "objeto" de interfaz?


No, es (una instancia de) una clase anónima.


No, esto crea una instancia de una clase anónima que implementa la interfaz.

Esta es la respuesta definitiva de la Especificación del lenguaje Java, sección 15.9 :

Ambas expresiones de creación de instancia de clase no calificadas y calificadas pueden terminar opcionalmente con un cuerpo de clase. Dicha expresión de creación de instancia de clase declara una clase anónima (§15.9.5) y crea una instancia de la misma.