A herança é um dos pilares da programação orientada a objetos que permite que uma classe herde atributos e métodos de outra classe. Polimorfismo permite que objetos de diferentes classes possam ser tratados como objetos da mesma classe através de uma interface comum.
A herança possibilita a reutilização de código, criando uma relação entre classes derivadas e classes base. O polimorfismo, por sua vez, facilita a flexibilidade e a extensibilidade do código, permitindo que métodos possam ser sobrescritos ou que um método possa ser aplicado a objetos de diferentes classes.
Para mais informações, consulte a página da Wikipedia sobre Herança (programação) e Polimorfismo (programação).