8
Escuela Politécnica del Ejército CLASES ABSTRACTAS E INTERFACES Ing. Paulo Guerra Alejandro Merizalde 19-12-2012

Alejandro Merizalde

Embed Size (px)

Citation preview

Page 1: Alejandro Merizalde

Escuela Politécnica del Ejército

CLASES ABSTRACTAS E INTERFACESIng. Paulo Guerra

Alejandro Merizalde

19-12-2012

Page 2: Alejandro Merizalde

CLASE ABSTRACTAUna clase abstracta es aquella que declara la existencia de métodos pero no la implementación de estos; es decir, los métodos simplemente son declarados.Una clase abstracta puede contener métodos no abstractos pero al menos uno de estos debe ser abstracto.Para declarar una clase o método como abstractos, se utiliza la palabra reservada abstract, de la siguiente manera:

Una clase abstracta no se puede instanciar (es decir no se pueden volver en objetos) pero si se puede heredar y las clases hijas serán las encargadas de agregar la funcionalidad a los métodos abstractos.

Page 3: Alejandro Merizalde

Ejemplo:

En el siguiente ejemplo tomaremos dos figuras geométricas, el Rectángulo y el Triangulo rectángulo, para el ejemplo sólo consideraremos dos características similares: el ancho y el alto, por lo que podemos crear una clase padre Figura geométrica con estas dos características y sus métodos correspondientes, además del métodos getArea() que devolverá el área de la Figura. Pero, se presenta un problema, el cálculo del área del Rectángulo es diferente al cálculo del área del Triangulo.

Area del Rectangulo = ancho X altoArea del Triangulo = (ancho X alto)/2

Por lo tanto, el método getArea() deberá ser abstracto, por lo cual, la clase Figura también deberá ser abstracta.

Page 4: Alejandro Merizalde

Esta será nuestra clase padre Abstracta, en donde tomaremos los datos ancho y alto:

Y Aquí tenemos las clases hijas; una para obtener el área del rectángulo y otra para el área del triángulo:

Page 5: Alejandro Merizalde

Y finalmente en el main, llamamos a las clases y obtenemos los resultados de las dos áreas:

Page 6: Alejandro Merizalde

INTERFACEUna interface es una variante de una clase abstracta con la condición de que todos sus métodos deben ser abstractos. Si la interface va a tener atributos, éstos deben llevar las palabras reservadas static final y con un valor inicial ya que funcionan como constantes por lo que, por convención, su nombre va en mayúsculas.

interface Nomina{

public static final String EMPRESA = "Patito, S. A.";public void detalleDeEmpleado(Nomina obj);

}

Una clase implementa una o más interfaces con la palabra reservada implements.

class Empleado implements Nomina{ ...}

Esto sirve para simular una herencia múltiple que java no soporta.

Page 7: Alejandro Merizalde

Ejemplo:En el siguiente ejemplo, tomaremos de ejemplo a los animales. Se sabe que todos los animales emiten un sonido , por ejemplo el perro ladra, el gato maúlla, etc.

Entonces se puede crear una interfaz Animal con el método hablar( ).

Ahora crearemos una clase Perro y una Gato que implemente la interfaz Animal, en donde obligatoriamente tendremos que implementar el método hablar().

Page 8: Alejandro Merizalde

Finalmente en el main, llamamos a las clases y utilizamos los métodos creados.