Hoy utilicé la función de refactorización de "interfaz de extracción" de Eclipse para crear una interfaz basada en una clase existente. El cuadro de diálogo ofreció crear todos los nuevos métodos de la nueva interfaz como métodos "abstractos".
¿Cuál sería el beneficio de eso?
Pensé que el hecho de que se le permitiera declarar los métodos de interfaz como resumen era una característica superflua e inofensiva del lenguaje que no se recomienda especialmente.
¿Por qué Eclipse apoyaría ese estilo, o por qué alguien elegiría voluntariamente hacerlo?
Aclaración: no estoy preguntando por qué los métodos de interfaz son abstractos, eso es obvio. Me pregunto por qué uno elegiría explícitamente marcarlos como abstractos, ya que si están en una interfaz, de todos modos son abstractos.
abstract
palabra clave en la declaración de la interfaz en sí, no en sus miembros. La respuesta de @ Will a continuación es correcta y también contiene fuentes de enlaces válidas."El beneficio de eso" (agregar resumen en la declaración de métodos de interfaz) en eclipse sería un viejo problema de compatibilidad con jdt eclipse compiler en jdk1.3
Dado que es probable que el compilador de Eclipse esté en el nivel de cumplimiento 1.4 (ver
Workbench>Preferences>Java>Compiler>JDK Compliance
), o use al menos 1.3 bibliotecas de clases si usa el modo de cumplimiento 1.3, la presencia de "resumen" no es necesaria en la mayoría de los proyectos actuales de eclipse.fuente
Del Java SE 7 JLS (Especificación del lenguaje Java): "Está permitido, pero se desaconseja por cuestiones de estilo, especificar de forma redundante el modificador público y / o abstracto para un método declarado en una interfaz".
Para Java SE 5.0 : "Por compatibilidad con versiones anteriores de la plataforma Java, está permitido, pero desaconsejado, por cuestiones de estilo, especificar de forma redundante el modificador abstracto para los métodos declarados en las interfaces".
fuente
De acuerdo con los métodos JLS, las interfaces son abstractas por defecto, por lo que la palabra clave es redundante. Sabiendo esto, nunca lo usaría para "evitar el desorden de las presentaciones".
fuente