Konkrete Klasse in Java

1. Einleitung

In dieser Kurzanleitung wird der Begriff „konkrete Klasse“ in Java erläutert .

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

2. Was ist eine Betonklasse?

Eine konkrete Klasse ist eine Klasse, für die wir mit dem neuen Schlüsselwort eine Instanz erstellen können .

Mit anderen Worten, es ist eine vollständige Implementierung des Entwurfs . Eine konkrete Klasse ist abgeschlossen.

Stellen Sie sich zum Beispiel eine Autoklasse 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 sie instanziieren:

Car car = new Car();

Einige Beispiele für konkrete Klassen aus dem JDK sind HashMap , HashSet , ArrayList und LinkedList .

3. Java-Abstraktion vs. konkrete Klassen

Allerdings implementieren nicht alle Java-Typen alle ihre Methoden. Diese Flexibilität, auch Abstraktion 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.

Lassen Sie uns konkrete Klassen genauer betrachten, indem wir sie mit diesen anderen vergleichen.

3.1. Schnittstellen

Eine Schnittstelle ist eine Blaupause für eine Klasse . Mit anderen Worten, es handelt sich um eine Sammlung nicht implementierter Methodensignaturen:

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

Beachten Sie, dass anstelle der Klasse das Schlüsselwort interface verwendet wird .

Da Driveable nicht implementierte Methoden hat, können wir diese nicht mit dem neuen Schlüsselwort instanziieren .

Aber konkrete Klassen wie Auto können diese Methoden implementieren.

Das JDK bietet eine Reihe von Schnittstellen wie Map , List und Set .

3.2. Abstrakte Klassen

Eine abstrakte Klasse ist eine Klasse mit nicht implementierten Methoden, obwohl sie 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üsselwort abstract markieren .

Da Vehicle eine nicht implementierte Methode hat, können wir das neue Schlüsselwort nicht verwenden.

Einige Beispiele für abstrakte Klassen aus dem JDK sind AbstractMap und AbstractList .

3.3. Konkrete Klassen

Im Gegensatz dazu haben konkrete Klassen keine nicht implementierten Methoden. Unabhängig davon, ob die Implementierungen vererbt werden oder nicht, ist die Klasse konkret, solange jede Methode eine Implementierung hat.

Konkrete Klassen können so einfach sein wie unser Beispiel für ein Auto . Sie können auch Schnittstellen implementieren und abstrakte Klassen erweitern:

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

Die FancyCar- Klasse bietet eine Implementierung für honk und erbt die Implementierung des Antriebs von Vehicle.

Als solches hat es keine nicht implementierten Methoden . Daher können wir eine FancyCar- Klasseninstanz mit dem neuen Schlüsselwort erstellen .

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 haben wir etwas über konkrete Klassen und ihre Spezifikationen gelernt.

Zusätzlich haben wir die Unterschiede zwischen Schnittstellen und konkreten und abstrakten Klassen gezeigt.