¿Qué es una clase abstracta en Java?

| Última modificación: 20 de septiembre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Las jerarquías en programación son una característica de gran importancia de cara a conservar el orden y facilitar el desarrollo de aplicaciones. Uno de los elementos clave en el proceso de jerarquización son lo que se denomina como clase abstracta en Java. En el artículo de hoy te instruiremos acerca de esta temática que, aunque abstracta, no es para nada compleja, y que te ayudará a programar en Java de una manera más simple.

 clase abstracta en Java

¿Qué es una clase abstracta en Java?

Una clase abstracta en Java es una clase que no puede ser instanciada directamente. Es decir, tú no puedes crear objetos de una clase abstracta, ya que su propósito es servir como una plantilla para otras clases, lo que permite establecer una estructura común que las clases derivadas deben seguir.

Veamos un ejemplo simple de una clase abstracta en Java:

//clase abstracta en Java
abstract class Figura {
private String nombreFigura;

public void setNombre(String nombreFigura) {
this.nombreFigura = nombreFigura;
}

public String getNombre() {
return this.nombreFigura;
}

public abstract double calcularArea();
}

En este caso ejemplificador, Figura es una clase abstracta. Define un método abstracto calcularArea(), que no tiene implementación. Las clases que hereden de Figura deberán proporcionar una implementación para este método.

Uso de una clase abstracta en Java

Existen diferentes formas de usar una clase abstracta en Java. Veamos:

Declaración de clases abstractas

Para declarar una clase abstracta en Java, utiliza la palabra reservada abstract antes de class.

//clase abstracta en Java
abstract class Figura {
// Métodos y atributos
}

Implementación de métodos abstractos

🔴 ¿Quieres Aprender a Programar con Python? 🔴

Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semana

Las clases abstractas pueden contener métodos abstractos. Estos métodos no tienen implementación y deben ser definidos por las clases derivadas.

public abstract double calcularArea();

Herencia y clases abstractas

En la herencia, las clases derivadas heredan de las clases abstractas y deben implementar los métodos abstractos definidos en la clase base. Veamos un ejemplo:

Clase abstracta Animal:

//clase abstracta en Java
abstract class Animal {
public abstract void hacerSonido();

public void dormir() {
System.out.println("El animal está durmiendo.");
}
}

Desglosemos un poco para entender cómo funciona la palabra reservada abstract:

  • Clase abstracta: Animal es una clase abstracta, lo que significa que no se puede instanciar directamente.
  • Método abstracto: hacerSonido() es un método abstracto. Esto quiere decir que no tiene implementación en la clase Animal y debe ser implementado por cualquier clase que herede de Animal.
  • Método concreto: dormir() es un método concreto con implementación. Este método puede ser usado por cualquier clase que herede de Animal.

Clase abstracta Perro:

//clase abstracta en Java
class Perro extends Animal {
@Override
public void hacerSonido() {
System.out.println("El perro hace: Guau Guau");
}
}
  • Herencia: La clase Perro hereda de la clase abstracta Animal utilizando la palabra clave extends.
  • Implementación del método abstracto: Perro proporciona una implementación para el método hacerSonido(), que imprime “El perro hace: Guau Guau“.

¿Qué debes tener en cuenta al trabajar con una clase abstracta en Java?

  1. No se pueden instanciar directamente: Las clases abstractas no pueden ser instanciadas. No puedes crear objetos directamente a partir de ellas.
  2. Implementación por clases derivadas: Las clases derivadas deben implementar todos los métodos abstractos de la clase abstracta.
  3. Métodos concretos y abstractos: Además de métodos abstractos, las clases abstractas también pueden contener métodos concretos (con implementación).
  4. Cumplimiento de métodos: Si una clase derivada no implementa todos los métodos abstractos, también debe ser declarada como abstracta.

El uso de clases abstractas en Java puede cambiar significativamente la forma en la que manejas las herencias y la jerarquización. Si quieres seguir aprendiendo más sobre Java y sus entresijos, no dudes en unirte al bootcamp java que tenemos para ti, en donde aprenderás todo lo necesario sobre este lenguaje de programación y posteriormente ingreses a un entorno laboral lleno de excelentes oportunidades de empleo. No esperes más para unirte a la mejor comunidad, ¡te esperamos con los brazos abiertos!

Ramón Maldonado

Full Stack Developer y Responsable de Formación base en KeepCoding.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Java y Spring Boot

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado

¡CONVOCATORIA ABIERTA!

Aprende a Programar desde Cero

Full Stack Jr. Bootcamp

Apúntate y consigue uno de los perfiles más demandados con Python en solo 4 meses.