Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Mais de Uma Herança.

è possivel uma classe possuir mais de uma herança ?

2 respostas

Em Java não é possível que uma classe faça herança de múltiplas classes.

O motivo disso, imagine que uma classe herda outras duas classes, entretanto essas duas classes herdadas possuem métodos com a mesma assinatura porém com implementações diferentes. Seria algo difícil de lidar, pois como a subclasse saberia qual implementação do método ela deveria usar? Por isso não é possível que uma classe estenda de mais de uma classe em Java.

Uma classe abstrata pode possuir métodos abstratos assim como métodos concretos, ou seja, métodos que já foram implementados, então o fato da classe ser abstrata não ajuda muito a resolver o problema citado anteriormente.

O que se pode fazer em Java é que uma classe implemente várias interfaces, pois interfaces são como classes 100% abstratas, ou seja, é completamente proibido qualquer tipo de implementação nela, logo, não há o menor problema se as duas interfaces tiverem um método com a mesma assinatura, pois quem vai implementar o método é a classe que implementa as interfaces.

Algo curioso é que a palavra reservada extends pode ser usada para as interfaces, que é quando uma interface herda outra(s) interface(s), mas nesse caso não há problema de uma interface herdar de várias outras interfaces, pois não há nenhuma implementação envolvida nesse caso. Seria um código que ficaria assim:

Interface1:

public interface Interface1 {
     public void teste(); 
}

Interface2:

public interface Interface2 {
     public void teste(); 
}

SubInterface:

public interface SubInterface extends Interface1, Interface2 {

 }

Veja que não há o menor problema em fazer isso, pois a implementação vai na primeira classe concreta que implementar a SubInterface:

public class MinhaClasse implements SubInterface {
    @Override
    public void teste() {
        System.out.println("sou apenas um teste");
    }
}
solução!

Em JavaScript não há herança multipla como na linguagem Java.