Interfaces versus Herança

Herança ou interface ? eis a questão

Muitos autores renomados dizem que herança quebra o encapsulamento e muitos programadores concordam com isso.

Eu poderia substituir toda a minha herança por interfaces ? qual a vantagem e desvantagem ?.

Dizem que ao utilizam interface, ganhamos mais polimorfismo.

Dizem que herança gera muito aclopamento de classes.

Meu professor de java diz que a herança não quebra o encapsulamento se usarmos métodos privados quando possível.

Muitos consideram a herança “maléfica” é correto afirmar isso ?.

James Gosling, o pai do java, disse uma vez: “Ao invés de uma subclasse, é só usar interfaces puro. Não é tanto que a herança de classe é particularmente ruim. Ele só tem problemas”.

Eis a questão senhoras e senhores programadores de java, o que vocês acham? quais as opiniões de vocês ?

Grato.

Cara… Essa discurssão é bem longa mesmo… Eu sou a favor que o Projeto seja estudado e Prototipado… nessas horas a UML ajuda e eu ainda funciono bem olahdno um Diagrama de Classes…

Agora uma coisa é verdade, desde que entendi Interfaces a fundo, nunca mais usei Herança em meus Projetos, já fazem uns 4 Projetos…

Abs []

O conceito mais utilizado aqui na empresa é programação para interface, pelo fato de possibilitar um acoplamento fraco, sem contar que a amnutenção se torna mais fácil. :wink:

Bacana,

com base no depoimento de vocês, percebo que interface é realmente a melhor opção

estou começando a estudar interfaces e resolvi fazer este post para ter certeza de que os comentarios eram corretos ou não

Há de se tomar cuidado também ao utilizar interfaces, já vi cada código porco por ai de nego lotando de interfaces só para falar que usou quando na verdade não tinha a menor necessidade, em resumo o sistema ficou engessado ao máximo como nunca vi igual.

Eu utilizo os 2, cada um tem sua aplicação.

Tem casos que a Interface resolve, outros a especialização é mais apropriada.

Inté.

Não é uma questão de ser melhor ou não. Existem problemas que só podem ser resolvidos com uso de interfaces e outros com herança.

A questão do polimorfismo por exemplo.

justamente wamp…

preste atenção que eu lhe falei que o Projeto deve ser estudado… Sempre… há casos e casos…

Ainda a pouco (depois de lhe responder) achei um caso de Herança… não em projeto meu, mas sim em manutenção e realmente o mesmo tá mais pra herança…

Abs []

A tah, tô entendendo

não podemos desprezar a herança totalmente

antes é necessário uma boa análise com a ajuda da UML pra decidirmos qual será a melhor, né ?

legal gente :slight_smile:

[quote=wampactimus]A tah, tô entendendo

não podemos desprezar a herança totalmente

antes é necessário uma boa análise com a ajuda da UML pra decidirmos qual será a melhor, né ?

legal gente :)[/quote]

Herança não é para ser desprezada, é para ser usada, da mesma forma que a interface. São coisas diferentes.