Confira neste Papo Reto, João Pedro falando sobre Linguagem Java passando pela diferença entre Herança e Polimorfismo.
Podemos resumir em:
Herança = Quando temos uma classe modelo, que nós chamamos de Classe mãe, e criamos outras classes parecidas que herdam as características, os atributos, os métodos e comportamentos dessa Classe Mãe para a utilização sem a necessidade de implementar o mesmo código.
Polimorfismo = Subclasses de uma classe podem definir seus próprios comportamentos exclusivos e ainda compartilhar algumas das mesmas funcionalidades da classe mãe.
Podendo me comunicar com um objeto específicos a partir de uma referencia mais genérica.
Confira Apresentação: