Dúvidas com interface

Galera do Guj, boa tarde
É correto um interface conter atributos?
Estou criando uma interface que será espelho para um JavaBean, os atributos
devem ficar na interface ou devem ficar apenas em cada classe que a implemente?
Muito obrigado pela ajuda

Jandiro Segundo

olá,

uma interface contém uma espécie de contrato que todas as classes que a implementam precisam seguir. A interface possui métodos abstratos, nao atributos.

Se essa classe que vc esta falando contém os get/set dos atributos, nao precisa utilizar interface.

Um exemplo de quando usar interface seria no caso de uma “interface Automovel”. Todas as classes quem implementarem a interface (Carro, Onibus, Caminhao, etc)… precisam implementar os métodos acelerar e freiar…
Vc sabe que todos possuem os metodos acelerar e freiar, mas cada classe implementa de seu modo

Ola Ricardo, boa tarde.
O exemplo que voce utilizou me deu uma luz, mas imagine que eu tenha a classe carro que implemente a interface automovel. Terei um atributo chamado cor que será comum a todas as classes. Não deverei ter tambem um método setCor e getCor para este atributo? E este atributo não deveria estar na interface para poder ser herdado por classes que a implementem?
Isto não está correto?
Agradeço desde já Ricardo
Um abraço

Jandiro

Claro que interfaces podem possuir atributos!!!
TODOS os atributos de interface são por default:
:lol: públicos
:wink: estáticos
:smiley: finais
soh pra esclarecer…

Sim, uma interface representa um contrato.

Se você pensar bem, um atributo é um detalhe de implementação interna de um objeto que não deveria ser expresso. Obrigar um objeto que a implementa a a ter um atributo XYZ é ruim, porque ele pode querer oferecer o serviço (feature) de outra forma.

Em linguagens avançadas em objetos, é possível até mesmo redefinir uma função como sendfo um atributo numa classe filha.

Resumo: você não precisa disso, exceto para constantes, e cosntantes são uma categoria especial de atributos.

[]s

sim é claro, as famosas Constants…

jandiro, no caso da cor, vc poderia ter uma classe Mae para todos os Automóveis. Nesta classe vc pode deixar o atributo cor como “protected”, para todas as subclasses terem acesso ao atributo.