Dúvida - Herança multipla em Java

5 respostas
torres17

Olá pessoal,
Estava lendo a revista Mundo Java número 37 e a página 23 tem um trecho de código me deixou intrigado:

public interface FacadeIntf extends java.io.Serializable, java.rmi.Remote{
    String JNDI_NAME = "Server";
}

A linha 2 que possui a declaração da interface, ela estende Serializable e Romote ao mesmo tempo? Consigo herdar duas classes, ou isso só é possível em interfaces?

Caso tenham referências para me passar fico agradecido.

5 Respostas

Polimorphism

Desculpe, não tenho nenhuma referência, mas acredito que o java trate herança entre interfaces como implementações.
Uns dos principais motivos no qual a herança multipla não é permitida, é o problema do diamante. [google]diamond problem[/google]
Como interfaces não podem implementar métodos, a herança múltila é permitida.

torres17

Obrigado pelo esclarecimento!

pablouu

uma classe pode implementar varias interfaces, mas estender apenas uma classe.
uma interface pode extender varias outras interfaces.

herança múltipla seria uma classe estendendo mais de uma classe e não foi o que ocorreu.

sergiotaborda

Java não tem herança multipla (aleluia!) mas permite a implementação de multiplas interfaces.
Isto não é considerado herança multipla porque não é considerado que interfaces se herdam.

Lembrar que em OO tipos servem para classificar objetos em categorias. Um objeto pode ser classificiado em multiplas
categorias usando interfaces que atuam como tags, mas o objeto só pode ter uma única hierarquia de identidade (aquilo que ele É)

JavaFX permitia herança multipa nas primeiras versões. Isso é possivel porque no bytecode não ha restrição quanto a isso.
Na versão 2 do JavaFX herança multipla foi retirada e substituida por mixins (à lá scala). Mixins são como interfaces. Eles classificam
e denotam comportamento. A diferença é que mixins podem declarar implementações mais ou menos como classes abstractas mas não entram no problema da herança multipla.

edmarr

Nao existe herança múltipla em Java , a nao sem uma interface que pode extender varias outras interfaces , sendo que a primeira classe concreta que implementar esta interface
a mesma ira tem que fornecer todas as implementações descritas nas interfaces .

Criado 22 de setembro de 2009
Ultima resposta 23 de set. de 2009
Respostas 5
Participantes 5