La herencia en Java permite que ciertas propiedades y/o métodos puedan ser pasados de una clase (llamada clase padre) a otra clase (llamada clase hija), para que esta última pueda utilizar dichas propiedades y métodos sin tener que implementarlos nuevamente.
El polimorfismo es uno de los conceptos fundamentales de la programación orientada a objetos y es una de las características principales de Java.
El polimorfismo permite que un objeto pueda tomar varias formas o comportarse de diferentes maneras según el contexto en el que se utilice.