Rondas y canciones infantiles
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 …ver más…
o Utilice siempre la regla “es un” o Mantenga poco profundas sus jerarquías de clases o Diseñe con cuidado las jerarquías de herencia y transfiera los aspectos comunes a las clases abstractas básicas. o Aísle el código común en una clase abstracta madre, pero no la coloque muy arriba. o Los aspectos comunes no surgirán sino después de escribir el código unas cuantas veces. Refactorice. o Utilice interfases bien definidas entre la madre y la hija. o Si agrega métodos de uso específico en las clases asegúrese de colocarlos como protegidos, o Evite dejar la implementación interna de sus objetos al alcance de las sub-clases. Ejemplo de herencia en JAVA * Redefinir un método Class UnaClase { Boolean bvariable; Void Metodo() { Variable = true: } } Class Otraclase extends Una Clase { Boolean bvariable; Void Metodo() { This.variable = false; Super.Metodo(); System.out.println(bvariable); System.out.println(super.bvariable) } } FALSE TRUE 91
UCA CyT
Análisis de Sistemas - INFORMÁTICA 3 – Programación Orientada a Objetos
Cuando una clase hereda de otra puede bien ampliar el comportamiento de esta o sustituir el comportamiento de los métodos de la clase madre. • Sustituir la implementación de un método Class A { Void HacerAlgo() { // hace alguna cosa } } Class B extends A { Void HacerAlgo() { // aquí hace otra cosa } } Es muy común que