15 de novembro de 2009

O estigma de herança múltipla em Java

Olá galera;

Faz um tempo que não escrevo, mas achei um tempinho e para um assunto interessante. Existe herança múltipla em Java?
Estive recentemente em uma entrevista que por sinal foi em uma empresa de grande porte. Na entrevista me foi pedido para explicar o conceito de herança múltipla em linguagem Java.
Pessoal, de vez em quando esquecemos os primórdios da programação em Java. Uma classe só consegue extender uma única classe. Ainda não é possível extender mais de uma classe em Java. Extender uma classe é utilizar do conceito de herança.
Ao mesmo tempo, podemos implementar "n" Interfaces. Implementar uma Interface, por mais parecido que seja, não é conceito de herança. Estou implementando a assinatura dos métodos, que por sinal serão sempre abstratos em uma Interface na classe que estou utilizando e obrigatóriamente todos eles.
No meu caso, em relação a essa entrevista, é claro que não entrei em discussão, mas de forma alguma aceitei a explicação do uso da Interface como conceito de herança múltipla, como o arquiteto Java que me entrevistou tentou me convencer.
Isso é meio que um alerta para provas de Conceito em entrevistas. Espero ter ajudado.

Um comentário:

Plínio disse...

É um caso clássico de empresa reprovada na entrevista.
Em uma entrevista, o meu ex-futuro líder técnico quis me convencer que era possível instanciar classes abstratas em C# e Java do mesmo modo que acontece no Delphi. Não adiantou tentar explicar que você só consegue instanciar uma implementação concreta, mesmo que seja uma classe anônima.
Tem vezes que é melhor nem discutir mesmo.