Está en la página 1de 20

Ing Yuri A.

Pomachagua Basualdo
Camión Camioneta

Carro Deportivo Carro Sedan


Ing Yuri A. Pomachagua Basualdo
 Clase Abstracta
 Definición
 Ejemplos
 Métodos abstractos
 Aplicaciones

Yart Ing Yuri A. Pomachagua Basualdo


Al finalizar esta sesión el alumno será capaz
comprender y crear aplicaciones en Java
utilizando Clases Abstractas

Yart Ing Yuri A. Pomachagua Basualdo


Son aquellas que no pueden instanciarse.

Las clases abstractas se usan para definir las características


generales de un concepto abstracto.

Una clase abstracta se usa para definir los atributos


comunes y el comportamiento general de un grupo de clases.

Las clases abstractas tienen las definiciones de métodos


que justifican su comportamiento.

Yart Ing Yuri A. Pomachagua Basualdo


Una clase abstracta puede implementar algunos de los
métodos definidos en ella, obteniéndose una implementación
parcial de su comportamiento. Usualmente, no se implementa
una gran parte de la clase (no se da la implementación de los
métodos), algunas veces, sin embargo, las clases abstractas
pueden implementar todos los métodos definidos en ella.

Yart Ing Yuri A. Pomachagua Basualdo


Las clases que heredan de una clase abstracta implementan
los métodos abstractos definidos en esa clase.

En caso de que la subclase no proporcione la


implementación para todos los métodos abstractos
definidos en la clase abstracta, la subclase misma se declara
como una clase abstracta y la clase que herede de esta
subclase abstracta debe proporcionar la implementación
para sus métodos abstractos. De lo contrario la cadena de
clases abstractas continúa.

Yart Ing Yuri A. Pomachagua Basualdo


Una clase puede incluso declararse como abstracta aunque
no tenga métodos abstractos.

Las clases abstractas no pueden ser instanciadas. Es decir,


si una clase se declara como abstracta, no se pueden crear
objetos de esa clase. Por ejemplo, la expresión

Persona p = new Persona("Vince ", "Economía"); Error

Yart Ing Yuri A. Pomachagua Basualdo


Puede crear variables de objeto de una clase abstracta, pero
dicha variable debe hacer referencia a un objeto de una
subclase no abstracta. Por ejemplo:

Persona p = new Estudiante ("Vince","Economía"); correcto

Aquí p es una variable del tipo de clase abstracta Persona


que se refiere a una instancia de la subclase no abstracta
Estudiante.

Yart Ing Yuri A. Pomachagua Basualdo


public abstract class Figura {
// Cuerpo de la clase.
}

No se pueden crear objetos pero sí referencias:

Figura fig; // Referencia.


Figura fig = new Figura(); //Error, no se puede crear
objeto.
Figura fig = new Alfil(); //Correcto, Alfil es derivada.

Yart Ing Yuri A. Pomachagua Basualdo


Las clases abstractas pueden tener dos tipos de métodos:
métodos que tienen implementación y métodos que no tiene
implementación.

Los métodos implementados en una clase abstracta son


métodos concretos. Los métodos que no tienen
implementación son métodos abstractos. Se van a definir los
métodos abstractos en Java..

Yart Ing Yuri A. Pomachagua Basualdo


Para definir una clase como Si en la clase abstracta se quiere
abstracta se coloca la palabra obligar a que las subclases
reservada abstract antes de class: implementen un determinado
método, basta declararlo como
método abstracto. No tendrá
cuerpo y terminará en punto y
public abstract class NombreObjeto { coma:

public abstract tipo nombreMétodo(parámetros);


……..
}

Las subclases (no abstractas) no podrán compilarse


si no implementan métodos con esos prototipos

Yart Ing Yuri A. Pomachagua Basualdo


Sólo las clases abstractas pueden tener métodos
abstractos.

Si una clase tiene un método abstracto sus derivadas deben


implementar el método abstracto o seguirán siendo clases
abstractas.

Una clase abstracta puede tener constructores los cuales


serán obligatorios para las derivadas.

Los métodos estáticos no pueden ser abstractos.

Yart Ing Yuri A. Pomachagua Basualdo


Implementar el siguiente diagrama de clases

Yart Ing Yuri A. Pomachagua Basualdo


Yart Ing Yuri A. Pomachagua Basualdo
Yart Ing Yuri A. Pomachagua Basualdo
PREGUNTA
1.-Obtener el Pago por Categoría, el monto del Descuento y el Pago
Final, aplicando Herencia y Polimorfismo

Yart Ing Yuri A. Pomachagua Basualdo


Suponga que Anna y Donovan son empleados por horas que ganan
$25 y $20 por hora, respectivamente. Simon es un empleado
asalariado que gana $4 000 al mes, y los tres empiezan a trabajar al
inicio del mes, que es martes. Cuando se ejecuta el programa, debe
producir la fecha del mes, el nombre del empleado y la cantidad
pagada en la fecha indicada, como se muestra a continuación: Utilize
clase abstracta.

Salida:
4 Anna: 800.00
4 Donovan: 640.00
11 Anna: 1000.00
11 Donovan: 800.00
15 Simon: 2000.00
A continuación el diagrama de clases

Yart Ing Yuri A. Pomachagua Basualdo


Yart Ing Yuri A. Pomachagua Basualdo
IMPLEMENTAR EN EL
LABORATORIO APLICACIONES
UTILIZANDO JAVA
EXPLICADOS EN CLASE

Yart Ing Yuri A. Pomachagua Basualdo

También podría gustarte