Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UNIDAD Nº III
Herencia y Colecciones
www.iplacex.cl
SEMANA 6
INTRODUCCIÓN
La intencionalidad de este material, dice relación con proveer los conocimientos y estrategias
elementales para poder desafiar a un problema del mundo real, dispuesto a ser corregido
informáticamente. Establecer los objetos que podrían componer tal sistema. Referir con una
programación.
2 www.iplacex.cl
IDEAS FUERZA
• Abstracción: En la orientación a objetos es factible partir los problemas en
subproblemas por medio de la abstracción.
3 www.iplacex.cl
Desarrollo
Organizando la Idea
Herencia y Polimorfismo
• Abstracción
• Modularización
• Acoplamiento
• Cohesión
• Encapsulamiento
Como vimos en la semana pasada un buen diseño orientado a objetos debe cumplir
con los diferentes conceptos de abstracción, cohesión, acoplamiento y encapsulación.
4 www.iplacex.cl
• Encapsulación: Cuando nos referimos a un diseño de calidad, uno de los
principales problemas es el uso de ámbitos públicos, por lo que los campos o
atributos nunca deben ser públicos.
Responsabilidad única:
Localización de cambios:
5 www.iplacex.cl
Acoplamiento implícito:
Métodos:
Clases:
Legibilidad:
6 www.iplacex.cl
Reusabilidad:
Herencia:
7 www.iplacex.cl
Si observamos a cada figura el cuadrado tiene nombre, color, color de línea,
ancho de línea, lado, entre otras cosas, podríamos también determinar algunos
métodos como es mostrar nombre, dibujar, calcular perímetro y calcular área.
El triángulo por su parte tiene nombre, color, color de línea, ancho de línea, base
y altura, podríamos también determinar algunos métodos como es mostrar nombre,
dibujar, calcular perímetro y calcular área.
8 www.iplacex.cl
El Circulo por su parte tiene nombre, color, color de línea, ancho de línea, radio,
podríamos también determinar algunos métodos como es mostrar nombre, dibujar,
calcular perímetro y calcular área
9 www.iplacex.cl
Al observar las 3 figuras podemos notar que tienen características comunes
como lo es nombre, color, color Línea y ancho Línea.
10 www.iplacex.cl
Como también métodos comunes cuyas tareas hacen lo mismo, aunque nota
que dibujar, calcular perímetro y calcular área hacen tareas distintas en cada figura.
Acá si sabemos que el proceso que se genera de forma interna no es igual para todos,
entonces no debemos pasarlo a la superclase, pues su análisis es distinto y se abarca
de otra forma que no tiene que ver con la herencia.
Dado este análisis podemos determinar que existe un elemento más abstracto
que es la figura, que reúne las características y comportamientos comunes entre las
otras figuras Cuadrado, Triangulo y Circulo, en programación se dice que Cuadrado es
11 www.iplacex.cl
una Figura o Cuadrado es una subclase de Figura, al igual que Triangulo y Circulo.
También es común hacer un análisis léxico del diagrama y tratamos de determinar la
relación “es un tipo de”, es decir en este caso, si podemos afirmar que un círculo “es un
tipo de” figura, entonces tendremos una pista más, respecto a la calidad de nuestro
modelo.
12 www.iplacex.cl
La estructura de la clase padre es la
misma que cualquier clase tiene los
atributos, constructores y métodos.
13 www.iplacex.cl
Cuando necesitamos implementar la herencia por código lo hacemos utilizando la
palabra extends, de esta forma todo lo que habíamos definido en la superclase
(atributos, métodos y constructores) se hereda hacia la clase de nivel inferior. Recuerda
que cuando se hereda sólo se hace desde una clase, es decir no se puede
implementar herencia múltiple.
14 www.iplacex.cl
En el ejemplo anterior, la clase Cuadrado hereda toda la estructura de la superclase
Figura.
Fíjate en la imagen que sigue, a veces la clase subclase debe de invocar al constructor
de la superclase, esta invocación se hace obligatoria si la superclase contiene un
constructor que tiene parámetros. Para hacer la invocación, del constructor de la
superclase, se hace usando la palabra super(). En los dos casos que están
destacados, se invoca primero a un constructor sin parámetros y luego a un constructor
con parámetros, ambos de la superclase.
15 www.iplacex.cl
Si te fijas los atributos nombre, color,
color de línea y ancho de línea, no
tienen que repetirse en la clase
cuadrado como también el método del
padre mostrar nombre.
16 www.iplacex.cl
Polimorfismo
17 www.iplacex.cl
manera más coloquial, ABSTRACTO sería algo que es difícil de entender porque se
encuentra en un estado de esquema, falta el código de él, pero hay otra cosa particular
que tiene, si el método es abstracto o incompleto, podemos decir que la clase también
es incompleta por lo que en JAVA se debe declarar la clase también como abstracta si
posee al menos un método abstracto.
Recuerda ir compilando tu proyecto para que quede sin las líneas diagonales en
tu clase y puedas comprobar si tu código está bien.
18 www.iplacex.cl
Pasemos a la clase Piano, al indicarle que la clase piano hereda de instrumento,
nos aparece un error que es común cuando utilizamos alguna clase abstracta, si lo
describimos de manera simple, la clase concreta Piano tiene que completar lo que tiene
incompleto la clase instrumento, que en este caso es el método tocar.
19 www.iplacex.cl
Al agregar el código que le falta, la clase piano deja de tener errores y podemos
codificar una salida con System.out.println, para que muestre Piano tocando.
Al compilar ahora tenemos que la clase piano tiene una flecha hacia arriba cuya
punta es blanca sin completar, este símbolo representa la herencia.
20 www.iplacex.cl
De manera similar completamos el código de Guitarra.
21 www.iplacex.cl
Podrás ver que tu diagrama queda en esta forma, luego de compilar el código.
22 www.iplacex.cl
CONCLUSIÓN
La experiencia de la Programación orientada a objetos, resulta ser muy positiva en un
motivadores tales como que el estudiante pueda aprender un lenguaje que se emplea
23 www.iplacex.cl
24 www.iplacex.cl