Académique Documents
Professionnel Documents
Culture Documents
Orientada a Objetos en
Java
Unidad 3
Herencia y Polimorfismo
Temario
Herencia
Reescritura de mtodos
Polimorfismo
Clases abstractas
Interfaces
Herencia
Herencia en Java
descendientes
subclases
clases derivadas
4
Ejemplo
class Figura {
int x, y;
public void print() { ... }
public void setX(int x) { this.x = x; }
public void setY(int y) { this.y = y; }
}
Encapsulamiento
Polimorfismo
Polimorfismo
Circulo circulo;
circulo = new Circulo();
Figura figura;
circulo
figura = circulo;
figura
Compila y ejecuta bien (un crculo es una figura)
Restriccin: no se puede usar figura para acceder a
mtodos especializados de Circulo
figura.getRadio(); // no compila
Polimorfismo
Reescritura de Mtodos
10
Reescritura de Mtodos
public class DTE {
...
public void validar() {
...
}
}
public class Factura extends DTE {
Reescritura del mtodo
public void validar() {
validar() en clase derivada (la
super.validar();
firma y el tipo de retorno
...
coinciden con los de la clase
base)
}
}
Invocacin a funcionalidad
provista en la clase base, para
extender en lugar de
reemplazar
11
Dynamic Binding
Compatibilidad de Tipos
Identificacin de Tipo
14
Constructor en Subclases
Ejemplo
16
17
Consideraciones de Diseo
Clases Abstractas
Clase Documento es
abstracta: si se intenta
instanciarla, se produce
public class Carta extends Documento {un error de compilacin
public void print() {
...
}
Si la clase Carta no
provee una
}
implementacin del
mtodo print(), se
Una subclase de una clase abstracta debe:
produce un error de
19
20
Interfaces
21
Interfaces
Interfaces
Capa genrica
class ColaImpresion {
static void creaJob(Printable p) {
p.print(Printable.PORTRAIT);
}
}
Capa cliente
ColaImpresion.creaJob(new Empleado());
ColaImpresion.creaJob(new Rectangulo());
Libro libro = new Libro();
ColaImpresion.creaJob(libro);
26
Resumen
Resumen