Classe béton en Java

Cours de béton en Java

1. introduction

Dans ce guide rapide,we’ll discuss the term “concrete class” in Java.

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

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

A concrete class is a class that we can create an instance of, using the new keyword.

En d’autres termes, c’est unfull implementation of its blueprint. Un cours concret est terminé.

Imaginez, par exemple, une classeCar :

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

    public String drive() {
        return "vroom";
    }
}

Comme 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 sontHashMap, HashSet, ArrayList, and LinkedList.

3. Abstraction Java vs. Classes de béton

Not all Java types implement all their methods, though. Cette flexibilité, également appeléeabstraction, 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. Des interfaces

An interface is a blueprint for a class. 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 declass.

Étant donné queDriveable utilise des méthodes non implémentées, nous ne pouvons pas l'instancier avec le mot-clénew .

Mais,concrete classes like Car can implement these methods.

Le JDK fournit un certain nombre d'interfaces telles queMap, List, and Set.

3.2. Classes abstraites

An abstract class is a class that has unimplemented methods, bien qu'il 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, puisqueVehicle a une méthode non implémentée,honk, nous ne pourrons pas utiliser le mot clénew .

Quelques exemples de classes abstraites du JDK sontAbstractMap and AbstractList.

3.3. Classes de béton

En revanche,concrete classes don’t have any unimplemented methods. 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 deCar plus tôt. 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 sclasseFancyCar fournit une implémentation pourhonk et hérite de l'implémentation dedrive deVehicle.

As such, it has no unimplemented methods. Par conséquent, nous pouvons créer une instance de classeFancyCar avec le mot clénew.

FancyCar car = new FancyCar();

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

4. Sommaire

Dans ce court tutoriel, nous avons appris sur 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.