La herencia en Java es un pilar de la programación orientada a objetos que permite a una clase (subclase) heredar atributos y métodos de otra (superclase), promoviendo la reutilización de código. Se implementa con la palabra clave extends.
En el ejemplo proporcionado, la clase CuentaAhorro hereda de Cuenta, añade un nuevo atributo y método, y sobrescribe el método retirar, utilizando super para aprovechar el comportamiento ya definido y añadir una tarifa. Dado que los atributos de Cuenta son privados, se accede a ellos mediante getters y setters.
Java no permite herencia múltiple directa, es decir, una clase no puede extender de más de una superclase. No obstante, se puede simular mediante una jerarquía de clases, como Cuenta → CuentaCorriente → CuentaCorrientePersonaFisica, donde la herencia es indirecta.