Herencia

Solo disponible en BuenasTareas
  • Páginas : 6 (1442 palabras )
  • Descarga(s) : 0
  • Publicado : 9 de junio de 2011
Leer documento completo
Vista previa del texto
Análisis de Sistemas - INFORMÁTICA 3 – Programación Orientada a Objetos

Capítulo 8
CONTENIDO PROGRAMÁTICO • HERENCIA – OBTENGA ALGO SIN ESFUERZO 8.1 8.2 8.3 8.4 CONCEPTO Por qué la herencia? MECÁNICA DE LA HERENCIA TIPOS DE HERENCIA 8.4.1 HERENCIA POR DIFERENCIA 8.4.2 HERENCIA POR SUSTITUCIÓN DE TIPOS 8.5 CÓMO LOGRAR UNA HERENCIA EFICIENTE? 8.6 CÓMO SATISFACE LA HERENCIA LAS METAS DE LA OO?8.7 PRÁCTICA DE HERENCIA

88

Análisis de Sistemas - INFORMÁTICA 3 – Programación Orientada a Objetos



Qué es la herencia? Es un mecanismo que permite basar una clase nueva en la definición de una clase existente. A través de la herencia, la clase nueva hereda todos los atributos y métodos de la clase madre.



Aprenda cuándo usar herencia. Hay una regla de oro que le permitedetectar casos de uso de herencia, aplicando la prueba “es un” determinamos exactamente si se trata de herencia, “es – un” describe la relación en la cual se considera que una clase es del mismo tipo que otra.



Cómo navegar por la herencia? Una jerarquía de herencia es un mapa de relaciones con forma de árbol que se da entre clases como resultado de la herencia. La herencia define la nueva clase(clase hija) en función de la clase anterior (clase madre). La clase hija es la que recibe la herencia, también se conoce como subclase. La clase madre es de la cual hereda directamente la hija y es conocida como superclase.



Mecánica de la herencia Cuando una clase hereda de otra, hereda su implementación, métodos y atributos. Una clase elaborada a través de la herencia puede tener trestipos importantes de métodos y atributos: o Redefinidos La nueva clase hereda el método o atributo de la madre, pero proporciona una nueva definición. Permite modificar el comportamiento de un objeto en relación con ese método. Al redefinir un método la clase hija toma un método de la clase madre y lo rescribe con el propósito de cambiar su comportamiento. Cómo sabe el objeto cuál definiciónutilizar? La mayoría de los stmas. Orientados a objetos buscan primero la definición en el objeto al que se le pasa el mensaje, si no hay una definición ahí, al ejecutarse el programa se recorrerá la jerarquía hacia arriba hasta encontrar una definición. o Nuevos

89

UCA CyT

Análisis de Sistemas - INFORMÁTICA 3 – Programación Orientada a Objetos

Son aquellos que aparecen en la clase hija perono en la clase madre, se refiere a atributos y métodos. Agrega la hija a su interfaz el atributo o método. o Recursivos Se definen en la clase madre o en cualquier anterior, pero no en la clase hija. Al acceder al atributo o método el mensaje se envía a las clases superiores hasta encontrar la definición del método. • Propósitos principales para utilizar la herencia o Reutilizar la implementaciónCuando una clase hereda de otra, automáticamente adopta el tipo de la clase de la cual heredó. En este tipo de herencia se hereda la interfaz y la implementación por lo que tenemos un caso de implementación sencilla, pero muy costosa, para evitar tan alto coste se puede aplicar la redefinición. o Por diferencia Programar por diferencia significa heredar una clase y agregarle solamente el códigoque la haga distinta de la clase de la cual está heredando. Existen dos formas para programar por diferencia: . Agregar nuevos comportamientos y atributos . Redefinir los atributos y comportamientos anteriores. A esto se lo denomina especialización. Esta definición no le permite eliminar de la clase hija los comportamientos y atributos heredados. o Por sustitución de tipos Se utiliza laconectabilidad mediante la cual es posible agregar nuevos subtipos a un programa en cualquier momento. El programa no tiene porqué preocuparse por conocer el tipo exacto del objeto siempre y cuando tenga una relación de sustituibilidad con el tipo que se espera poder reutilizar. Utilización de clases genéricas (ver tp genericidad) • Cómo utilizar la herencia de manera eficiente? o Aproveche para reutilizar...
tracking img