Inicio / Wikis / Tutoriales / Guía del usuario de Ruby - Herencia

Guía del usuario de Ruby - Herencia

(2 opiniones)
27 de Febrero de 2006
Orientación a objetos

15 - 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:

|| 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 ||

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.

|| ruby> tama = Gato.new #<Gato:0x401c41b8>; ruby> tama.respira inhalar y exhalar nil ruby> tama.maulla miau nil ||

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.

|| 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 ||

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.
Valora este capítulo: (2 opiniones)
Autor y licencia de 'Guía del usuario de Ruby - Herencia'
matz Extraído de: http://es.tldp.org/Manuales-LuCAS/doc-guia-usuario-ruby/doc-guia-usuario-ruby-html/ GNU Free Documentation License
Licencia GNU Free Documentation License: http://www.es.gnu.org/licencias/fdles.html
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Opiniona sobre 'Guía del usuario de Ruby - Herencia' (2)

Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.

Opina sobre este tutorial



* Valoración:
* Nombre:
* Correo electrónico:
* Título:
* Comentario:

Wikis relacionados con 'Guía del usuario de Ruby - Herencia'

Este controlador es para la interfaz del adaptador Ethernet Digital ''Tulip'' Debería de trabajar con... Más »
Todo lo que Ud. necesita saber para comenzar a utilizar Linux, el clon gratuito de... Más »
La arqueología como ontología materialista deja de lado la herencia tecnocrática, apolítica y a-histórica del... Más »
Los textos científicos tienen ciertas particularidades que fuerzan el uso de herramientas especializadas. LaTeX es... Más »
Este tema no debe dejarse nunca de lado; todos conocemos ejemplos de sitios que ahuyentan... Más »
¿Estás seguro de que deseas eliminar este capítulo?