Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java Abstraktion meistern: Abstrakte Klassen, Methoden und praktische Beispiele

Was ist Abstraktion in Java?

In Java legt Abstraktion nur die wesentlichen Merkmale eines Objekts offen und verbirgt interne Implementierungsdetails, die für den Benutzer irrelevant sind. Sie vereinfacht die Entwicklung, indem sie Komplexität und Aufwand reduziert. Abstraktion wird durch abstrakte Klassen, abstrakte Methoden und Interfaces erreicht und ist ein Kernkonzept in Javas objektorientiertem Design.

In diesem Tutorial lernen Sie:

Abstrakte Klassen verstehen

Eine abstrakte Klasse ist eine Klasse, die nicht selbst instanziiert werden kann, aber eine gemeinsame Basis für verwandte Unterklassen definieren kann. Sie kann sowohl abstrakte Methoden (ohne Körper) als auch konkrete Methoden (voll implementiert) enthalten. Das definierende Merkmal einer abstrakten Klasse ist, dass sie mindestens eine abstrakte Methode deklariert oder explizit als abstrakt für Designzwecke markiert ist.

Betrachten Sie die klassische Shape-Hierarchie, die in vielen Java-Tutorials verwendet wird:

Java Abstraktion meistern: Abstrakte Klassen, Methoden und praktische Beispiele

Die Shape-Klasse enthält gemeinsame Attribute und die calculateArea()-Methodensignatur, während Rectangle, Circle und Triangle konkrete Implementierungen bereitstellen. Obwohl die Shape-Klasse theoretisch instanziiert werden könnte, wäre dies semantisch sinnlos und könnte zu Fehlern führen. Daher wird sie als abstract deklariert:

abstract class Shape {
    // gemeinsamer Code
}

Was sind abstrakte Methoden?

abstrakte Methode deklariert eine Methodensignatur ohne Implementierung bereitzustellen. Sie muss innerhalb einer abstrakten Klasse definiert und von konkreten Unterklassen überschrieben werden. Da abstrakte Methoden keinen Körper haben, können sie nicht als final oder static markiert werden.

Beispiel-Syntax:

abstract public void calculateArea();

Im Shape-Beispiel muss jede Unterklasse calculateArea() mit ihrer eigenen Formel implementieren, sodass jede Form ihre Fläche melden kann, während das gemeinsame Interface intakt bleibt.

Praxis-Code-Beispiel

abstract class Shape {
    abstract void calculateArea();
}
class Rectangle extends Shape {
    void calculateArea() {
        System.out.println("Area of Rectangle");
    }
    public static void main(String[] args) {
        Shape obj = new Rectangle();
        obj.calculateArea();
    }
}

Wichtigste Punkte zu abstrakten Klassen

  • Abstrakte Klassen können sowohl abstrakte als auch konkrete Methoden enthalten.
  • Sie können als abstrakt deklariert werden, auch ohne abstrakte Methoden, wenn sie als Basistypen dienen sollen.
  • Polymorphie wird durch Halten von Referenzen des abstrakten Typs erreicht: Shape obj = new Rectangle();
  • Jede Klasse, die eine abstrakte Methode deklariert, muss selbst abstrakt sein.

Das final-Schlüsselwort in Java

Der final-Modifikator wird verwendet, um eine Klasse, Methode oder Variable zu sperren, sodass sie nicht überschrieben oder geändert werden kann:

  • final class – verhindert Vererbung.
  • final variable – macht die Variable zu einer Konstanten; ihr Wert ist nach der Initialisierung festgelegt.
  • final method – verbietet Überschreiben, oft für Sicherheit oder Performance-Optimierungen verwendet.

Beispiel: Kombination von Abstract und Final

abstract class Shape {
    final int b = 20;
    public void display() {
        System.out.println("This is display method");
    }
    abstract public void calculateArea();
}
public class Rectangle extends Shape {
    public static void main(String[] args) {
        Rectangle obj = new Rectangle();
        obj.display();
        // obj.b = 200; // Compile-Time-Fehler: finale Variable nicht zuweisbar
    }
    @Override
    public void calculateArea() {
        System.out.println("Calculating rectangle area");
    }
}

Das Einkommentieren der calculateArea()-Implementierung löst den Kompilierfehler, während der Versuch, b zu ändern, die Unveränderlichkeit von final-Variablen demonstriert.

Regeln für abstrakte Methoden

  • Sie haben keine Implementierung, nur eine Signatur.
  • Abstrakte Klassen sind erforderlich, wenn sie abstrakte Methoden enthalten; ansonsten kann die Klasse trotzdem abstrakt sein für Designzwecke.
  • Konkrete Unterklassen müssen alle geerbten abstrakten Methoden implementieren, es sei denn, sie sind ebenfalls als abstrakt deklariert.

Java

  1. C# Abstrakte Klassen & Methoden meistern: Praktischer Leitfaden
  2. Java abstrakte Klassen und Methoden: Ein umfassender Leitfaden
  3. C# Abstrakte Klassen: Praktisches Tutorial mit Code-Beispielen
  4. Java String length() Methode: String-Länge ermitteln (Beispiel)
  5. Java String.charAt(): Syntax, Rückgabetyp, Exceptions und praktisches Beispiel
  6. Java String.contains() Methode: Substrings prüfen – praktische Beispiele
  7. Java String.endsWith(): String-Suffixe prüfen mit Beispielen
  8. Interface vs. Abstrakte Klasse in Java: Die richtige Abstraktion wählen
  9. Dateien in Java mit BufferedReader lesen – Praktischer Leitfaden mit Beispielen
  10. Insertion Sort Algorithmus in Java: Klares Beispiel & Schritt-für-Schritt-Anleitung