Classe de béton à Java

1. Introduction

Dans ce guide rapide, nous discuterons du terme «classe concrète» en Java .

Tout d'abord, nous allons définir le terme. Ensuite, nous verrons en quoi c'est différent des interfaces et des classes abstraites.

2. Qu'est-ce qu'une classe de béton?

Une classe concrète est une classe dont nous pouvons créer une instance, en utilisant le mot-clé new .

En d'autres termes, c'est une mise en œuvre complète de son plan . Un cours concret est terminé.

Imaginez, par exemple, une classe Car :

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

Parce que toutes ses méthodes sont implémentées, nous l'appelons une classe concrète et nous pouvons l'instancier:

Car car = new Car();

Quelques exemples de classes concrètes du JDK sont HashMap , HashSet , ArrayList et LinkedList .

3. Abstraction Java et classes concrètes

Cependant, tous les types Java n'implémentent pas toutes leurs méthodes. Cette flexibilité, également appelée abstraction , nous permet de penser en termes plus généraux au domaine que nous essayons de modéliser.

En Java, nous pouvons réaliser l'abstraction en utilisant des interfaces et des classes abstraites.

Voyons mieux les classes concrètes en les comparant à ces autres.

3.1. Interfaces

Une interface est un modèle pour une classe . Ou, en d'autres termes, c'est une collection de signatures de méthodes non implémentées:

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

Notez qu'il utilise le mot-clé interface au lieu de class.

Étant donné que Driveable a des méthodes non implémentées , nous ne pouvons pas l'instancier avec le nouveau mot-clé.

Mais, des classes concrètes comme Car peuvent implémenter ces méthodes.

Le JDK fournit un certain nombre d'interfaces telles que Map , List et Set .

3.2. Classes abstraites

Une classe abstraite est une classe qui a des méthodes non implémentées, bien qu'elle puisse en fait avoir les deux:

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

Notez que nous marquons les classes abstraites avec le mot-clé abstract .

Encore une fois, puisque Vehicle a une méthode non implémentée, klaxonner , nous ne pourrons pas utiliser le nouveau mot-clé.

Quelques exemples de classes abstraites du JDK sont AbstractMap et AbstractList .

3.3. Classes de béton

En revanche, les classes concrètes n'ont pas de méthodes non implémentées. Que les implémentations soient héritées ou non, tant que chaque méthode a une implémentation, la classe est concrète.

Les classes concrètes peuvent être aussi simples que notre exemple de voiture précédemment. Ils peuvent également implémenter des interfaces et étendre des classes abstraites:

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

La classe FancyCar fournit une implémentation pour honk et hérite de l'implémentation de drive from Vehicle.

En tant que tel, il n'a pas de méthodes non mises en œuvre . Par conséquent, nous pouvons créer une instance de classe FancyCar avec le nouveau mot clé.

FancyCar car = new FancyCar();

Ou, tout simplement, toutes les classes qui ne sont pas abstraites, nous pouvons appeler des classes concrètes.

4. Résumé

Dans ce court didacticiel, nous avons découvert les classes concrètes et leurs spécifications.

De plus, nous avons montré les différences entre les interfaces et les classes concrètes et abstraites.