É muito melhor usar Interface ou Herança pra fazer o uso padrão de JavaBeans?

Tipo é uma dúvida meio cruel…

public class Caracteristica {

private String descricao;
//Outras propriedades...


public void setDescricao(String descricao){
this.descricao = descricao;
}

public String getDescricao(){
return descricao;
}

//Vários outros getters e setters...

}

public class Pessoa extends Caracteristica {

// e vários outros métodos
}

ou

public interface Caracteristica {

public String getDescricao();

public void setDescricao(String descricao);

}

public class Pessoa implements Caracteristica {


private String descricao;
//implementa os métodos da interface...

}

Em questão de polimorfismo na sua opnião qual seria melhor???

Obrigado desde já!!!

Não há uma resposta definitiva para uma decisão entre interface ou herança, cada caso é um caso. No seu exemplo, como parece se tratar de um JavaBean bastante simples, não vejo problemas em usar herança. Mas, se a superclasse tivesse métodos um pouco mais complexos que chamassem outros métodos dentro da mesma classe, e esses outros métodos fossem redefinidos na subclasse, o comportamento da subclasse poderia ser diferente do que você esperava em determinadas situações. Quando a redefinição de métodos traz efeitos colaterais indesejados, usar interface e delegação costuma ser uma saída sensata.

Nesse caso a interface é mais adequada, pois a Pessoa “implementa um comportamento” de Caracteristica, a Pessoa não “É” uma Característica.

Veja mais nesse tópico: http://www.guj.com.br/java/244222-simulao-de-heran-multipla-como-fazer

[quote=gomesrod]Nesse caso a interface é mais adequada, pois a Pessoa “implementa um comportamento” de Caracteristica, a Pessoa não “É” uma Característica.

Veja mais nesse tópico: http://www.guj.com.br/java/244222-simulao-de-heran-multipla-como-fazer[/quote]

Também tavo pensando dessa maneira… =) Obrigado… alguém tem mais opniões???