Clase concreta en Java

1. Introducción

En esta guía rápida, analizaremos el término "clase concreta" en Java .

Primero, definiremos el término. Luego, veremos en qué se diferencia de las interfaces y las clases abstractas.

2. ¿Qué es una clase concreta?

Una clase concreta es una clase de la que podemos crear una instancia, utilizando la palabra clave new .

En otras palabras, es una implementación completa de su plan . Una clase concreta está completa.

Imagine, por ejemplo, una clase de automóvil :

public class Car { public String honk() { return "beep!"; } public String drive() { return "vroom"; } }

Debido a que todos sus métodos están implementados, la llamamos clase concreta y podemos instanciarla:

Car car = new Car();

Algunos ejemplos de clases concretas del JDK son HashMap , HashSet , ArrayList y LinkedList .

3. Abstracción de Java frente a clases concretas

Sin embargo, no todos los tipos de Java implementan todos sus métodos. Esta flexibilidad, también llamada abstracción , nos permite pensar en términos más generales sobre el dominio que estamos tratando de modelar.

En Java, podemos lograr la abstracción utilizando interfaces y clases abstractas.

Veamos mejor las clases concretas comparándolas con estas otras.

3.1. Interfaces

Una interfaz es un modelo para una clase . O, en otras palabras, es una colección de firmas de métodos no implementados:

interface Driveable { void honk(); void drive(); }

Tenga en cuenta que utiliza la palabra clave de interfaz en lugar de clase.

Debido a que Driveable tiene métodos sin implementar, no podemos instanciarlo con la nueva palabra clave.

Pero, clases concretas como Car pueden implementar estos métodos.

El JDK proporciona una serie de interfaces como Map , List y Set .

3.2. Clases abstractas

Una clase abstracta es una clase que tiene métodos no implementados, aunque en realidad puede tener ambos:

public abstract class Vehicle { public abstract String honk(); public String drive() { return "zoom"; } }

Tenga en cuenta que marcamos las clases abstractas con la palabra clave abstract .

Nuevamente, dado que Vehículo tiene un método sin implementar, bocinazo , no podremos usar la nueva palabra clave.

Algunos ejemplos de clases abstractas del JDK son AbstractMap y AbstractList .

3.3. Clases concretas

Por el contrario, las clases concretas no tienen ningún método sin implementar. Ya sea que las implementaciones se hereden o no, siempre que cada método tenga una implementación, la clase es concreta.

Las clases concretas pueden ser tan simples como el ejemplo anterior de Car . También pueden implementar interfaces y extender clases abstractas:

public class FancyCar extends Vehicle implements Driveable { public String honk() { return "beep"; } }

La clase FancyCar proporciona una implementación para bocinazo y hereda la implementación de drive de Vehicle.

Como tal, no tiene métodos sin implementar . Por lo tanto, podemos crear una instancia de clase FancyCar con la nueva palabra clave.

FancyCar car = new FancyCar();

O, simplemente, a todas las clases que no son abstractas, las podemos llamar clases concretas.

4. Resumen

En este breve tutorial, aprendimos sobre clases concretas y sus especificaciones.

Además, mostramos las diferencias entre interfaces y clases concretas y abstractas.