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:
ruby> class Mamifero ruby| def respira ruby| print "inhalar y exhalar\n" ruby| end ruby| end nil ruby> class Gato<Mamifero ruby| def maulla ruby| print "miau \n" ruby| end ruby| end nil
ruby> tama = Gato.new #<Gato:0x401c41b8> ruby> tama.respira inhalar y exhalar nil ruby> tama.maulla miau nil
ruby> class Pajaro ruby| def aseo ruby| print "me estoy limpiando las plumas." ruby| end ruby| def vuela ruby| print "estoy volando." ruby| end ruby| end nil ruby> class Pinguino<Pajaro ruby| def vuela ruby| fail "Lo siento. yo sólo nado." ruby| end ruby| end nil