La herencia es la capacidad de crear nuevas clases a partir de otras clases anteriores.
La principal ventaja de la herencia es la reutilización de código.
Si se quiere crear una clase ligeramente diferente a una ya existente, no es necesario duplicar el código. En su lugar, se amplía la clase existente y se coloca la funcionalidad adicional dentro de una subclase resultante que hereda los campos y métodos de la superclase.
Una de las consecuencias del uso de la herencia es que las subclases tienen la misma interfaz que su clase padre. No se puede esconder un método en una subclase si este mismo método se declaró en la superclase de forma pública.