¿Cómo puede una clase anónima extender una superclase o implementar una interfaz?
java
anonymous-class
Mike Rylander
fuente
fuente
Respuestas:
Las clases anónimas deben extender o implementar algo, como cualquier otra clase de Java, incluso si es solo
java.lang.Object
.Por ejemplo:
Aquí,
r
hay un objeto de una clase anónima que implementaRunnable
.Una clase anónima puede extender otra clase usando la misma sintaxis:
Lo que no puede hacer es implementar más de una interfaz. Necesita una clase con nombre para hacer eso. Sin embargo, ni una clase interna anónima ni una clase con nombre pueden extender más de una clase.
fuente
SomeClass
. Todavía es anónimo, debido al{...}
.Una clase anónima generalmente implementa una interfaz:
Si te refieres a si puedes implementar 2 o más interfaces, creo que eso no es posible. A continuación, puede crear una interfaz privada que combine los dos. Aunque no puedo imaginar fácilmente por qué querrías que una clase anónima tuviera eso:
fuente
Las clases anónimas siempre extienden la superclase o implementan interfaces. por ejemplo:
Además, aunque la clase anónima no puede implementar múltiples interfaces, puede crear una interfaz que amplíe otra interfaz y dejar que su clase anónima la implemente.
fuente
Supongo que nadie entendió la pregunta. Supongo que lo que quería este tipo era algo como esto:
porque esto permitiría cosas como múltiples implementaciones de interfaz:
esto sería realmente bueno; pero eso no está permitido en Java .
Lo que puede hacer es usar clases locales dentro de bloques de métodos:
fuente
fuente
Una clase anónima se está ampliando o implementando mientras crea su objeto. Por ejemplo:
Aquí la clase anónima está implementando Interface.
aquí la clase anónima está ampliando una clase abstracta.
fuente