-
Java por motivos de simplicidade, abandona a idéia de herança múltipla, cedendo lugar ao uso de interfaces.
Interfaces são um conjunto de métodos e constantes (não contém atributos).
Os métodos definidos na interfacesão "ocos" ou desprovidos de implementação.
Classes podem dizer que implementam uma interface, estabelecendo um compromisso, uma espécie de contrato, com seus clientes
no que se refere a prover uma implementação para cada método da referida interface.
fonte: http://www.ic.unicamp.br/~cmrubira/aacesta/java/javatut10.html
-
Vejam essa questão do próprio Cespe, que parece divergir sobre o tema:
Q83144 (Detran ES 2010)
http://www.questoesdeconcursos.com.br/questoes/889af5fa-30
A herança de interfaces consiste no único caso de herança múltipla permitida a uma classe em Java, visto que, em geral, não é possível que uma classe pai tenha o mesmo nome de método de outra classe pai.
Gabarito: C
-
Fabio, é exatamente isto que a questão quer dizer. O ÚNICO CASO de herância múltipla é através de interfaces, e se chama Herança múltipla de tipos(não chega a ser uma Herança múltipla "pura"). Ademais, o comportamento PADRÃO é a herança simples.
Oracle - Interfaces Java - https://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html
Oracle - Herança(subclasses) - https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html
Oracle - Heranças múltiplas - https://docs.oracle.com/javase/tutorial/java/IandI/multipleinheritance.html . Citando: "One reason why the Java programming language does not permit you to extend more than one class is to avoid the issues of multiple inheritance of state, which is the ability to inherit fields from multiple classes...."
"...The Java programming language supports multiple inheritance of type, which is the ability of a class to implement more than one interface. An object can have multiple types: the type of its own class and the types of all the interfaces that the class implements. This means that if a variable is declared to be the type of an interface, then its value can reference any object that is instantiated from any class that implements the interface. This is discussed in the section..."
-
correto - foi decidido contra herança múltipla devido ao problema do diamante, o que é uma subclasse herdar 1 método com mesmo nome de 2 super classes, o que gera o impasse de não saber qual dos 2 metodos sera implementado.