Documentos de Académico
Documentos de Profesional
Documentos de Cultura
POLIMORFISMO Indice
Definicin y caracteristicas Objetivos. SOBRRESCRITURA-SOBRECARGA Clases y mtodos abstractos INTERFACES (herencia mltiple) Subclase,Clase abstracta e Interface Interface vs. Clase Abstracta Ejemplo: (4)Project Musica (Instrumentos).
20/02/2007
Polimorfismo
20/02/2007
Polimorfismo
20/02/2007
Polimorfismo
20/02/2007
Polimorfismo
Downcasting: Interpretar un objeto de una clase base como del mismo tipo que una clase derivada suya.
Se especifica precediendo al objeto a convertir con el nuevo tipo entre parntesis.
20/02/2007
Polimorfismo
20/02/2007
Polimorfismo
20/02/2007
Polimorfismo
La operacin getClass () de Object devuelve un objeto de la clase Class que permite obtener en tiempo de ejecucin gran cantidad de informacin de la clase a la que pertenece el objeto. El atributo esttico class de la clase tambin devuelve una referencia a este objeto
20/02/2007
Polimorfismo
POLIMORFISMO Objetivos
20/02/2007
Polimorfismo
11
POLIMORFISMO Objetivos
20/02/2007
Polimorfismo
12
POLIMORFISMO Objetivos
EJEMPLO DE COLECCIN GENRICA public class TestPolimorfismo{ public static void main(String[] args) { Animal[] animales = new Animal[4]; animales[0] = new Lobo(); animales[1] = new Perro(); animales[2] = new Leon(); animales[3] = new Tigre(); for(int i=0; i<animales.length; i++) { animales[i].dormir(); animales[i].comer(); } } }
20/02/2007
Polimorfismo
13
POLIMORFISMO Objetivos
MATEMTICO CIRCULO
20/02/2007
Polimorfismo
14
POLIMORFISMO Objetivos
EJEMPLO DE MTODO GENRICO public class Matematico{ public double calcularArea(Figura param) { return param.calcularArea(); } } public class TestPolimorfismo { public static void main(String[] args) { Matematico m = new Matematico(); m.calcularArea(new Circulo()); m.calcularArea(new Triangulo()); } }
20/02/2007
Polimorfismo
15
POLIMORFISMO SOBREESCRITURA-SOBRECARGA
SOBREESCRITURA: La subclase reimplementa el mtodo heredado (cambian el comportamiento). SOBRECARGA: Varias implementaciones del mismo mtodo con distintos parmetros (cambio de interfaz). Muy habitual en constructores.
Es aqu donde realmente se aprecia los beneficios del polimorfismo. Sobrecargando el constructor conseguimos dotar a la clase de flexibilidad. Pero siempre debe quedar claro que tras la conexin polimorfa nicamente podemos acceder a las operaciones pertenecientes a la clase asociada a la referencia. El resto de operaciones del objeto no son accesibles a travs de esta referencia
20/02/2007
Polimorfismo
16
POLIMORFISMO SOBRRESCRITURA-SOBRECARGA
//Sobrecarga de constructores class Box { double width; double height; double depth; //El siguiente es el constructor especfico Box(double w, double h, double d) { width = w; height = h; depth = d; } Box () { width = height = depth = -1 //-1 indica volumen no existente } //Cubo,entonces, por qu introducir 3 valores? Box (double valor) { width = height = depth = valor; } double volume() { return width * height * depth; }
20/02/2007
Polimorfismo
17
POLIMORFISMO Clases y mtodos abstractos Clases abstractas: A menudo existen clases que sirven para definir un tipo genrico pero que no tiene sentido instanciar (crear objetos de ella). Mtodos abstractos: Un mtodo abstracto significa que tiene que ser sobrescrito. No est implementado. Una clase con uno o varios mtodos abstractos tiene que ser declarada abstracta. No obstante una clase abstracta no tiene porque tener mtodos abstractos.
20/02/2007 Polimorfismo 18
20/02/2007
Polimorfismo
19
20/02/2007
Polimorfismo
21
20/02/2007
Polimorfismo
22
Una clase puede implementar n interfaces pero solo una clase. El objetivo de un mtodo abstracto es forzar una interfaz (API) pero no una implementacin.
20/02/2007
Polimorfismo
23
20/02/2007
Polimorfismo
24
20/02/2007
Polimorfismo
25
20/02/2007
Polimorfismo
26