Clases Abstractas e Interfaces

En esta nueva publicación hablaremos de dos temas muy importantes para la programación en Java, estos conceptos te ahorrarán escritura de código y tendrás programas mucho más eficientes. ¡Veamos de qué se trata!





  • ¿Cómo identificarla? Las clases abstractas tienen al menos un método sin implementar, es decir, un método sin cuerpo o código como por ejemplo: public void calcularSuma ();
  • Nunca tienen instancias, sólo son usadas como Superclases o clase Padre. Cuando nos referimos a instancias, significa que no se crean objetos de esta clase.
  • Definen un molde y un protocolo para las Subclases, es decir, sirven de modelo para las clases hijas, dado que el concepto de clase abstracta va de la mano con la Herencia, ¿La recuerdas?
  • Representa el primer nivel de reutilización de componentes de software en el paradigma de Orientación a Objetos, como te contamos en la introducción a esta publicación, la función principal de esta herramienta es la reutilización de código.
  • Palabra clave "abstract", este comando será usado para indicar la creación de una clase con estas características.
  • El hijo está obligado a implementar el método a excepción de cuando hay varios hijos (al menos un hijo tiene que implementar el método), es decir, al final de la cadena de herencia, absolutamente todos los métodos abstractos (sin código), deben haber sido implementados, es decir, desarrollados.
  • Solo se pueden instanciar las clases hijas, con esto nos referimos a que solo se puede crear un new (palabra clave para la creación de un nuevo objeto) en el main de las clases hijas. 
  • Siempre hay relación lógica.
  • Debe poseer al menos un método abstracto pero también puede tener métodos implementados, es muy importante destacar esto, puede existir combinación de métodos con y sin cuerpo, ya que, la condición para que la clase sea abstracta es que debe existir AL MENOS un método sin implementar.
  • Una clase sólo puede heredar de una clase abstracta.
  • Los atributos y métodos de una clase abstracta pueden tener modificadores de acceso.
  • Puede tener atributos.
  • Una clase abstracta define el núcleo de una clase y es usada para objetos del mismo tipo.
  • Tanto clases abstractas como interfaces permiten describir propiedades comunes de familias de clases.

Por si tienes alguna duda, estamos seguros que este vídeo te será bastante útil:



  • Colección de métodos sin implementar y valores constantes (no maneja atributos).
  • No es una clase, puede verse como una lista de requisitos que deben cumplir las clases.
  • A diferencia de las clases abstractas, todos sus métodos son abstractos, es decir, ningún método tiene cuerpo.
  • Se hereda de una clase y se implementa de una interfaz (no se hereda de una interfaz).
  • Una clase puede implementar varias interfaces.
  • Palabra clave "implements".
  • No posee atributos.
  • Al implementar una interfaz, la clase implementadora se ve obligada a codificar todos los métodos.
  • No hay modificadores de acceso, todos son public.
  • Una clase puede heredar de otra e implementar una interface al mismo tiempo.
  • Describe un grupo de comportamientos relacionados que pueden pertenecer a cualquier clase o estructura.
  • Una clase puede implementar todas las interfaces que requiera.
  • Las interfaces son usadas para definir las habilidades periféricas de una clase.
Al igual que con las clases abstractas, te dejaremos por acá un vídeo con un ejemplo para que veas que todo esto de las interfaces es mas sencillo de lo que parece:



Comentarios

Entradas más populares de este blog

Herencia, polimorfismo, sobrecarga y sobre-escritura

Programación Orientada a Objetos

Excepciones y Bloques: Try, Catch y Finally