1. ESCUELA POLITÉCNICA
DEL EJÉRCITO
JUAN CARLOS ALMEIDA MERA
TEMA: CLASES ABSTRACTAS E
INTERFACES EN JAVA
PROGRAMACIÓN I
2. CLASES ABSTRACTAS
• Una clase que declara la existencia de métodos
pero no la implementación de dichos métodos, se
considera una clase abstracta.
• Una clase abstracta puede contener métodos no
abstractos pero al menos uno de los métodos
debe ser abstracto.
• Para declarar una clase o método como
abstractos, se utiliza la palabra reservada
abstract.
3. 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.
4. VENTAJAS DE SU USO
En primer lugar, evitan que los usuarios de la clase
puedan crear objetos de la misma, como dice la
definición de clase abstracta.
En segundo lugar, permiten crear interfaces que
luego deben ser implementados por las clases que
hereden de la clase abstracta. Es evidente que una
clase abstracta, al no poder ser instanciada, no
tiene sentido hasta que una serie de clases que
heredan de ella la implementan completamente y
le dan un significado a todos sus métodos.
5. Ejemplo:
Como ejemplo tomaremos dos figuras geométricas,
el Rectángulo y el Triángulo rectángulo, para el
ejemplo sólo consideraremos dos características
similares: el ancho y el alto, por lo que podemos
crear una super clase 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.
6. Área del Rectangulo = ancho X alto
Área 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.
7.
8. Tipo de dato Protected
Este tipo de datos es privado para todas
aquellas clases que no son derivadas, pero
público para una clase derivada de la clase en la
que se ha definido la variable como protected.
9. INTERFACES
Una 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.
10. Una clase implementa una o más interfaces
(separadas por comas) con la palabra reservada
implements con el uso de interfaces se puede
“simular” la herencia múltiple que Java no soporta
11. Ejemplo:
En el siguiente ejemplo, tomaremos de ejemplo a
los animales, se sabe que todos los animales hablan
(literalmente), por ejemplo el perro ladra, el gato
maúlla, etc.
Entonces se puede crear una interfaz Animal con el
método hablar().
12. Ahora crearemos una clase Perro que implemente
la interfaz Animal, por lo que obligatoriamente
tendremos que implementar el método hablar().
Ahora crearemos una clase Gato que implemente la
interfaz Animal, por lo que obligatoriamente
tendremos que implementar el método hablar().