Capítulo 14. Herencia
  La clasificación de los objetos en nuestra vida diaria es evidentemente jerárquica. Sabemos que todos los gatos son mamíferos y que todos los mamíferos son animales. Las clases inferiores heredan características  de las clases superiores a las que pertenecen. Si todos los mamíferos respiran, entonces los gatos respiran.
  
  Este concepto se puede expresar en Ruby:
  Aunque no se dice cómo respira un 
Gato, todo gato heredará ese comportamiento de 
Mamifero dado que se ha definido 
Gato como una subclase de 
Mamifero. En terminología OO, la clase inferior es una 
subclase de la clase superior que es una 
superclase. Por lo tanto, desde el punto de vista del programador, los gatos obtienen gratuitamente la capacidad de respirar; a continuación se añade el método 
maulla, así nuestro gato puede respirar y maullar.
  Existen situaciones donde ciertas propiedades de las superclases no deben heredarse por una determinada subclase. Aunque en general los pájaros vuelan, los pingüinos es una subclase de los pájaros que no vuelan.
  En vez de definir exhaustivamente todas las características de cada nueva clase, lo que se necesita es añadir o redefinir las diferencias entre cada subclase y superclase. Esta utilización de la herencia se conoce como 
programación diferencial. Y es uno de los beneficios de la programación orientada a objetos.