Interfaces - conceito

Pessoal,

gostaria de saber se é possível em uma interface, definir um método como
opcional de ser implementado. E se é possível, então como definir isso?

Tks in advance

Interface é um contrato. Você é obrigado a implementar todos os métodos.

Até!

Dá uma olhada aqui:
http://www.guj.com.br/java.tutorial.artigo.123.1.guj

[quote=maquiavelbona]Interface é um contrato. Você é obrigado a implementar todos os métodos.

Até![/quote]

Obrigado galera.
Eu tive esta dúvida qdo estava lendo uma introdução ao collections framework
no site da sun:
http://java.sun.com/developer/onlineTraining/collections/Collection.html#Introduction

E lá tem um paragrafo que diz:
“However, some of the interface methods are optional.”

O que o autor pode estar querendo dizer com isto?

Mais uma vez obrigado.

O código é obrigado a implementar todos os métodos. Isso não significa que todos os métodos são implementados corretamente. Por exemplo, em Collections que não são alteradas (Collections.unmodifiedCollection), os métodos que alteram a Collection lançam UnsupportedOperationException .

Isso significa que a classe que implementar o método não é obrigado a fazer aquilo que o método foi desenhado para fazer. Nesse caso ele deve lançar uma UnsupportedOperationException(). Nota: não significa que o método deve ter implementação vazia, e sim que ele deve lançar uma exceção informando que não suporta o uso daquele método.
Exemplo: Uma coleção não é obrigada a implementar add() e as coleções obtidas com Collections.singletonXXX ou Collections.emptyXXX realmente não implementam esse método (aliás , não faz sentido se implementassem).

O objetivo disse é criar coleções iteráveis, mas imutaveis.
Recentemente foi adicionada a interface Iteratable que simplifica o uso de coleções (e outras coisas) não obrigando o programador a usar coleções “parcilamente implementadas”

Pessoal,

valew mesmo!

[]'s