asdtf
Páginas: 10 (2298 palabras)
Publicado: 27 de abril de 2013
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.