„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Abstrakte Klassen in Java – Aufschlüsselung

Abstrakte Klassen in Java – Aufschlüsselung

Veröffentlicht am 08.11.2024
Durchsuche:906

Abstract Classes in Java – Breaking It Down

Was ist eine abstrakte Klasse?

Eine abstrakte Klasse ist wie eine Blaupause für andere Klassen. Sie können ein Objekt nicht direkt aus einer abstrakten Klasse erstellen. Stattdessen verwenden Sie es als Grundlage für andere Klassen, die darauf aufbauen und die Details ergänzen können.

Warum abstrakte Klassen verwenden?

Abstrakte Klassen sind nützlich, wenn Sie ein allgemeines Konzept definieren möchten, das einige gemeinsame Funktionen aufweist, aber auch Raum für spezifische Details lassen möchten, die in verschiedenen Situationen variieren können. Beispielsweise könnten Sie eine allgemeine Vorstellung von einem „Tier“ haben, die gemeinsame Merkmale wie Essen oder Schlafen beinhaltet, aber verschiedene Tiere könnten auf unterschiedliche Weise essen oder schlafen.

Eine abstrakte Klasse erstellen

So können Sie eine abstrakte Klasse namens Animal erstellen:

public abstract class Animal {
    abstract void makeSound();  // Abstract method, no body

    void sleep() {
        System.out.println("This animal sleeps.");
    }
}

In diesem Beispiel ist makeSound() eine abstrakte Methode, das heißt, sie hat noch keinen Körper. Die Methode sleep() ist jedoch vollständig implementiert.

Erweitern einer abstrakten Klasse

Jetzt erstellen wir einige Klassen, die die Animal-Klasse erweitern:

public class Dog extends Animal {
    void makeSound() {
        System.out.println("The dog barks.");
    }
}

public class Cat extends Animal {
    void makeSound() {
        System.out.println("The cat meows.");
    }
}

Sowohl die Klassen „Dog“ als auch „Cat“ müssen ihre eigene Version der Methode „makeSound()“ bereitstellen, sie erben jedoch die Methode „sleep()“ unverändert.

Abstrakte Klasse vs. Schnittstelle

  • Vererbung: Eine Klasse kann nur eine abstrakte Klasse erweitern, aber mehrere Schnittstellen implementieren.
  • Methodenimplementierung: Eine abstrakte Klasse kann sowohl abstrakte Methoden (ohne Körper) als auch vollständig implementierte Methoden haben. Eine Schnittstelle (vor Java 8) kann nur abstrakte Methoden haben.
  • Konstruktor: Abstrakte Klassen können Konstruktoren haben, Schnittstellen jedoch nicht.

Teilweise Implementierung

Eine abstrakte Klasse ist großartig, wenn Sie einige Methoden haben, die von allen untergeordneten Klassen gemeinsam genutzt werden sollten, Sie aber auch erzwingen möchten, dass einige Methoden von diesen untergeordneten Klassen definiert werden.

public abstract class Bird extends Animal {
    void move() {
        System.out.println("The bird flies.");
    }
}

Jetzt erbt jede Klasse, die Bird erweitert, sowohl die move()-Methode als auch die sleep()-Methode von Animal, muss aber weiterhin makeSound() implementieren.

Herausforderung: Probieren Sie es selbst aus!

  1. Erstellen Sie eine abstrakte Klasse namens Vehicle mit einer abstrakten Methode startEngine().
  2. Erstellen Sie zwei Klassen, Car und Motorcycle, die Vehicle erweitern und die startEngine()-Methode implementieren.
  3. Fügen Sie eine allgemeine Methode zu Vehicle hinzu, wie stopEngine(), und sehen Sie, wie sie in den untergeordneten Klassen funktioniert.

Abschluss

Abstrakte Klassen in Java bieten eine Möglichkeit, eine gemeinsame Grundlage für verwandte Klassen zu erstellen und gleichzeitig Raum für die Definition spezifischer Details durch diese Klassen zu lassen. Sie schaffen ein Gleichgewicht zwischen gemeinsamer Funktionalität und Flexibilität und machen Ihren Code sowohl leistungsstark als auch wiederverwendbar.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/be11amer/abstract-classes-in-java-breaking-it-down-1k79?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3