1.898 visualizaciones desde el 14 de Enero del 2017
239,9 KB
19 paginas
Creado hace 16a (03/03/2010)
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
Ejemplo: objetos y herencia
Vehículo v = new Vehículo();
Coche c = new Coche();
Barco b = new Barco()
c
:Coche
color: int
numSerie: int
cilindrada: int
color(): int
numSerie(): int
pinta(nuevoColor: int)
cambiaNumSerie(nuevo: int)
cilindrada(): int
cambiaCilindrada(nueva: int)
:Barco
color: int
numSerie: int
color(): int
numSerie(): int
pinta(nuevoColor: int)
cambiaNumSerie(nuevo: int)
color(): int
numSerie(): int
pinta(nuevoColor: int)
cambiaNumSerie(nuevo: int)
b
Prácticas de Programación
Tema 3. Herencia y Polimorfismo
Redefiniendo operaciones
Una subclase puede redefinir (“override”) una operación en lugar
de heredarla directamente
En muchas ocasiones (no siempre) la operación redefinida invoca
la de la superclase
3.1 Herencia
• se usa para ello la palabra super
• se refiere a la superclase del objeto actual
Invocación del constructor de la superclase:
Herencia y Constructores
Los constructores no se heredan
3.1 Herencia
• las subclases deben definir su propio constructor
Normalmente será necesario inicializar los atributos de la
superclase
• para ello se llama a su constructor desde el de la subclase
/** constructor de una subclase */
public Subclase(parámetros...) {
// invoca el constructor de la superclase
super(parámetros para la superclase);
// inicializa sus atributos
...
}
• la llamada a “super” debe ser la primera instrucción del
Ejemplo: clase Vehículo
public class Vehículo {
// constantes estáticas para los colores
public static final int rojo=1, verde=2, azul=3;
public static final String[] nombre=
{"error", "rojo", "verde", "azul"};
// atributos privados
private int color;
private int numSerie;
/**
* Constructor al que le pasamos el color
* y el número de serie
*/
public Vehículo(int color, int numSerie) {
this.color = color;
this.numSerie = numSerie;
}
/**
* Obtener un texto con los datos
* del vehículo
*/
public String toString() {
return "Vehículo -> numSerie= "+
numSerie+", color= "+nombre[color];
}
/**
* Constructor al que le pasamos el color, el
* numero de serie y la cilindrada
*/
public Coche(int color, int numSerie,
int cilindrada) {
super(color, numSerie);
this.cilindrada = cilindrada;
}
Comentarios de: Prácticas de Programación - Tema 3. Herencia y Polimorfismo (0)
No hay comentarios