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

Polimorfismo

É correto afirmar que só haverá o polimorfismo se houver a herança?

6 respostas

Também pode ocorrer com classes que implementam interfaces

Não Márcio. Como disse o Christian, uma interface pode não ter uma implementação concreta e ser utilizada!

Por exemplo:

private Collection<Aula> aulas;

public void testePolimorfismo() {
    aulas = new ArrayList<>();
    aulas = new LinkedList<>();
    aulas = new HashSet<>();
}

Existem dois tipos de polimorfismo.

Polimorfismo de Sobrecargar - Metodos com assinaturas diferentes.

public class Calculadora {
// Metódos com mesmo nomes, porém a maneira que ele se comporta ira depender dos parametros passados. Se for passado dois inteiros sera executado o primeiro, se for passado 2 double sera executado o 2.
    public int somar(int valor1, int valor 2){
        return valor1 + valor2;
    }
    public double somar(double valor1, double valor2){
        return vamor1+valor2;
    }

}

E o polimorfismo que você citou que é o de sobreescrita de metódos de herança/classe abstrata/interface

public interface Calculadora{
    public double somar(int valor1, int valor2);
}

public class CalculadoraCientifica implements Calculadora {

    @Override
    public double somar(int valor1, int valor2) {
        return valor1+valor2;
    }

}
solução!

Boa tarde Marcio.

O conceito de herança é uma classe filha herdar atributos e comportamentos da classe mãe.

O polimorfismo na herança é a capacidade de um objeto de classes filhas poderem ser referenciados pela classe mãe.

Não é a única forma, conforme dito acima. Há também classes que implementam interfaces, e objetos dessas classes podem ser referenciados pelas interfaces que elas implementam.

Polimorfismo é uma mudança de comportamento em classes descendentes, sendo que o comportamento inicial não necessariamente precisa estar definido.

Obrigado a todos pelas explicações.