Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3
Clase parcialmente definida
No se puede hacer un new de una clase
abstracta ( no tiene instancias)
Los métodos que no se van a definir deben
tener el título abstract
Las clases abstractas no pueden tener
métodos privados o estáticos
4
Si una clase tiene un método abstract es
obligatorio que la clase sea abstract.
6
7
abstract class Empleado {
...
abstract float calcularSueldo();
...
}
class Operario extends Empleado {
...
float calcularSuedo() {
// codigo para definir sueldo Operario
...
}
}
8
La clase abstracta se declara simplemente con el
modificador abstract en su declaración.
Los métodos abstractos se declaran también con el
mismo modificador, declarando el método pero sin
implementarlo (sin el bloque de código encerrado
entre {}).
La clase derivada se declara e implementa de forma
normal, como cualquier otra. Sin embargo si no
declara e implementa los métodos abstractos de la
clase base (en el ejemplo el método calcularSueldo)
el compilador genera un error indicando que no se
han implementado todos los métodos abstractos y
que, o bien, se implementan, o bien se declara la
clase abstracta.
9
Se pueden crear referencias a clases abstractas
como cualquier otra. No hay ningún problema en
poner:
FiguraGeometrica figura;
10
Polimorfismo
Característica de Java que permite tomar como
algo igual a un nivel superior dos cosas que son
diferentes a un nivel más bajo.
Ejemplo: animal, gato y perro. Los dos son
animales a un nivel alto de abstracción (animal)
pero diferentes a un nivel inferior. El polimorfismo
básicamente permite olvidarse de ciertas
características específicas de varios objetos para
centrarse en lo que tengan en común, en lo que
los haga iguales.
Java logra ofrecer esta habilidad gracias a dos
cosas: las clases y métodos abstractos y las
interfaces.
12
Posibilidad de que un método tenga el
mismo nombre y produzca el mismo efecto
básico pero esté implementado de forma
distinta en las subclases.
Redefinición de métodos
◦ La subclase re-escribe el método de la Superclase
◦ Cuando una instancia de la subclase llama el
método re-escrito, es su propia definición
13
14
class Superclase{
…
public tipo m1(par1,par2,..,parn){.. }
}
class Subclase extends Superclase{
…
public tipo m1(par1,par2,..,parn){..}
}
15
16
17
Método ToString
Clase Método Ingresos
Nombre
Empleado abstract
Número de seguro social: NSS
Si horas <= 40
sueldo*horas
Si horas > 40 Empleado por horas: Nombre
40*sueldo+(horas-40)*sueldo*1.5 Número de seguro social: NSS
EmpleadoPorHoras
Sueldo por horas: sueldo
Horas trabajadas: horas
18