Eu usei o recurso de refatoração "pull interface" do Eclipse hoje para criar uma interface baseada em uma classe existente. A caixa de diálogo oferecida para criar todos os novos métodos da nova interface como métodos "abstratos".
Qual seria o benefício disso?
Eu pensei que o fato de você poder declarar métodos de interface como abstratos era um recurso supérfluo e inofensivo da linguagem que não é particularmente incentivado.
Por que o Eclipse suportaria esse estilo ou por que alguém escolheria voluntariamente fazê-lo?
Esclarecimento: Não estou perguntando por que os métodos de interface são abstratos, isso é óbvio. Estou perguntando por que alguém escolheria explicitamente marcá-los como abstratos, pois se eles estiverem em uma interface, serão abstratos de qualquer maneira.
abstract
palavra-chave na declaração da própria interface, não em seus membros. A resposta de @ Will abaixo está correta e também contém fontes de links válidas."O benefício disso" (adicionar resumo na declaração de métodos de interface) no eclipse seria um antigo problema de compatibilidade com o compilador jdt eclipse no jdk1.3
Como o compilador Eclipse provavelmente está no nível de conformidade 1.4 (consulte
Workbench>Preferences>Java>Compiler>JDK Compliance
), ou usa pelo menos 1.3 bibliotecas de classes se estiver usando o modo de conformidade 1.3, a presença de "resumo" não é necessária na maioria dos projetos atuais do eclipse.fonte
No Java SE 7 JLS (Java Language Specification): "É permitido, mas desencorajado por uma questão de estilo, especificar de forma redundante o modificador público e / ou abstrato para um método declarado em uma interface".
Para o Java SE 5.0 : "Para compatibilidade com versões mais antigas da plataforma Java, é permitido, mas por desencorajar, por uma questão de estilo, especificar de forma redundante o modificador abstrato para os métodos declarados nas interfaces".
fonte
De acordo com os métodos JLS nas interfaces, são abstratos por padrão, portanto a palavra-chave é redundante. Sabendo disso, eu nunca o usaria para "evitar confusão de apresentação".
fonte