asdtf

Páginas: 10 (2298 palabras) Publicado: 27 de abril de 2013
Prácticas de Programación
Tema 1. Introducción al análisis y diseño de programas
Tema 2. Clases y objetos
Tema 3. Herencia y Polimorfismo
Tema 4. Tratamiento de errores
Tema 5. Aspectos avanzados de los tipos de datos
Tema 6. Modularidad y abstracción: aspectos avanzados
Tema 7. Entrada/salida con ficheros
Tema 8. Verificación y prueba de programas

© M. Aldea y M. González
8/03/10Prácticas de Programación

1

Tema 3. Herencia y Polimorfismo

Tema 3. Herencia y Polimorfismo
3.1.
3.2.
3.3.
3.4.
3.5.

Herencia
Polimorfismo
La clase Object
Clases abstractas
Bibliografía

© M. Aldea y M. González
8/03/10

Prácticas de Programación

2

Tema 3. Herencia y Polimorfismo
3.1 Herencia

3.1 Herencia

Vehículo

Relación de herencia:
• todos los cochesson vehículos

Coche

La herencia es un mecanismo por el que se pueden crear nuevas
clases a partir de otras existentes,
• heredando, y posiblemente modificando, y/o añadiendo
operaciones
• heredando y posiblemente añadiendo atributos
Observar que una operación o atributo no puede ser suprimido en
el mecanismo de herencia
Nomenclatura
clase original
clase extendida
Prácticas deProgramación

superclase
subclase

padre
hijo
© M. Aldea y M. González
8/03/10

Vehículo
Coche
3

Tema 3. Herencia y Polimorfismo
3.1 Herencia

Herencia de operaciones
Al extender una clase
• se heredan todas las operaciones del padre
• se puede añadir nuevas operaciones
La nueva clase puede elegir para las operaciones heredadas:
• redefinir la operación: se vuelve a escribir
-la nueva operación puede usar la del padre y hacer más
cosas: programación incremental
- o puede ser totalmente diferente
• dejarla como está: no hacer nada
La herencia se puede aplicar múltiples veces
• da lugar a una jerarquía de clases

© M. Aldea y M. González
8/03/10

Prácticas de Programación

4

Tema 3. Herencia y Polimorfismo
3.1 Herencia

Herencia en un diagrama de clasesFigura
-Color
+dibuja()
+borra()
+cambiaColor()

Línea

Círculo

-puntoInicio
-puntoFin
+dibuja()
+borra()

superclase

-centro
-radio
+dibuja()
+borra()
+rellena()

subclases

• Los atributos y métodos de la superclase no se repiten en las
subclases
- salvo que se hayan redefinido
© M. Aldea y M. González
8/03/10

Prácticas de Programación

5

Tema 3. Herenciay Polimorfismo
3.1 Herencia

Ejemplo
Clase que representa un vehículo cualquiera
Vehículo
-color: int
-numSerie: int
+color(): int
+numSerie(): int
+pinta(nuevoColor: int)
+cambiaNumSerie(nuevo: int)

Prácticas de Programación

© M. Aldea y M. González
8/03/10

6

Tema 3. Herencia y Polimorfismo
3.1 Herencia

Ejemplo: clase Vehículo
public class Vehículo
{
// constantesestáticas finales para los colores
public static final int
rojo=1,
verde=2,
azul=3;
// atributos
private int color;
private int numSerie;

Prácticas de Programación

© M. Aldea y M. González
8/03/10

7

Tema 3. Herencia y Polimorfismo
3.1 Herencia
Ejemplo: clase Vehículo (cont.)

/**
* Obtener el numero de serie
*/
public int numSerie()
{
return numSerie;
}
/**
*Obtener el color
*/
public int color()
{
return color;
}

Prácticas de Programación

© M. Aldea y M. González
8/03/10

8

Tema 3. Herencia y Polimorfismo
3.1 Herencia
Ejemplo: clase Vehículo (cont.)

/**
* Cambiar el numero de serie
*/
public void cambiaNumSerie(int numSerie)
{
this.numSerie=numSerie;
}
/**
* Pintar el vehículo de un color
*/
public void pinta(intnuevoColor)
{
color = nuevoColor;
}
}

Prácticas de Programación

© M. Aldea y M. González
8/03/10

9

Tema 3. Herencia y Polimorfismo
3.1 Herencia

Ejemplo: extensión a la clase Coche
Vehículo
-color: int
-numSerie: int
+color(): int

Coche

+numSerie(): int
+pinta(nuevoColor: int)
+cambiaNumSerie(nuevo: int)

-cilindrada: int
+cilindrada(): int
+cambiaCilindrada(nueva:...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS