Konkrete Klasse in Java

Konkrete Klasse in Java

1. Einführung

In dieser Kurzanleitung werdenwe’ll discuss the term “concrete class” in Java.

Zunächst definieren wir den Begriff. Dann werden wir sehen, wie es sich von Schnittstellen und abstrakten Klassen unterscheidet.

2. Was ist eine Betonklasse?

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

Mit anderen Worten, es ist einfull implementation of its blueprint. Eine konkrete Klasse ist abgeschlossen.

Stellen Sie sich zum Beispiel eineCar -Klasse vor:

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

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

Da alle Methoden implementiert sind, nennen wir es eine konkrete Klasse und können es instanziieren:

Car car = new Car();

Einige Beispiele für konkrete Klassen aus dem JDK sindHashMap, HashSet, ArrayList, and LinkedList.

3. Java Abstraction vs. Konkrete Klassen

Not all Java types implement all their methods, though. Diese Flexibilität, auchabstraction genannt, ermöglicht es uns, allgemeiner über die Domäne nachzudenken, die wir modellieren möchten.

In Java können wir Abstraktion mithilfe von Schnittstellen und abstrakten Klassen erreichen.

Sehen wir uns konkrete Klassen genauer an, indem wir sie mit diesen anderen vergleichen.

3.1. Schnittstellen

An interface is a blueprint for a class. Mit anderen Worten, es ist eine Sammlung nicht implementierter Methodensignaturen:

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

Beachten Sie, dass anstelle vonclass. das Schlüsselwortinterface verwendet wird

DaDriveable nicht implementierte Methoden sind, können wir sie nicht mit dem Schlüsselwortnew instanziieren.

Aberconcrete classes like Car can implement these methods.

Das JDK bietet eine Reihe von Schnittstellen wieMap, List, and Set.

3.2. Abstrakte Klassen

An abstract class is a class that has unimplemented methods,, obwohl es tatsächlich beides haben kann:

public abstract class Vehicle {
    public abstract String honk();

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

Beachten Sie, dass wir abstrakte Klassen mit dem Schlüsselwortabstract markieren.

DaVehicle eine nicht implementierte Methode,honk, hat, können wir das Schlüsselwortnew nicht verwenden.

Einige Beispiele für abstrakte Klassen aus dem JDK sindAbstractMap and AbstractList.

3.3. Konkrete Klassen

Im Gegensatz dazuconcrete classes don’t have any unimplemented methods. Wenn die Implementierungen vererbt werden oder nicht, ist die Klasse konkret, solange jede Methode eine Implementierung hat.

Konkrete Klassen können so einfach sein wie das Beispiel vonCar. Sie können auch Schnittstellen implementieren und abstrakte Klassen erweitern:

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

DieFancyCar -Skala stellt eine Implementierung fürhonk bereit und erbt die Implementierung vondrive vonVehicle.

As such, it has no unimplemented methods. Daher können wir eine Klasseninstanz vonFancyCarmit dem Schlüsselwortnewerstellen.

FancyCar car = new FancyCar();

Oder einfach ausgedrückt, alle Klassen, die nicht abstrakt sind, können wir konkrete Klassen nennen.

4. Zusammenfassung

In diesem kurzen Tutorial lernten wir konkrete Klassen und deren Spezifikationen kennen.

Zusätzlich haben wir die Unterschiede zwischen Interfaces und konkreten und abstrakten Klassen aufgezeigt.