Der folgende Artikel enthält eine Übersicht über die abstrakte Klasse in Java. Abstrakte Klassen sind wie alle anderen normalen Klassen in Java. Der wesentliche Unterschied zwischen abstrakten und regulären Klassen besteht darin, dass wir beim Erstellen der abstrakten Klasse das Schlüsselwort „ABSTRACT“ verwenden müssen. Es handelt sich um eine Trennung der Klassenimplementierung. Sie definierten die sehr gemeinsamen Merkmale seiner Unterklassen. Eine solche Art von Klasse wird als abstrakte Klasse bezeichnet. Am wichtigsten ist, dass wir kein Objekt einer abstrakten Klasse erstellen können.
Starten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Abstrakte Klassen können sowohl abstrakte als auch nicht abstrakte Methoden enthalten. Sie dürfen jedoch keinen Hauptteil der abstrakten Methode enthalten, die nur von der Unterklasse bereitgestellt werden kann. Wenn die Unterklasse die abstrakte Methode nicht implementiert, müssen wir sie explizit ABSTRACT machen. Mit anderen Worten: Wenn eine Klasse eine abstrakte Methode enthält, muss sie sich selbst als ABSTRACT definieren. Mithilfe abstrakter Klassen können wir mehrere Java-Klassen gruppieren, den Code optimieren, ihn lesbarer machen und Redundanzen reduzieren. Es bietet auch eine Vorlage für zukünftige Kurse.
Die Syntax der abstrakten Klasse lautet wie folgt:
Die folgenden Beispiele sind unten aufgeführt:
Human.java
package com.cont.article; public abstract class Human { public abstract void whatTheylike(); public void doTheysleep() { System.out.println("Yes every human require sleep."); } }
Human1.java
package com.cont.article; public class Human1 extends Human { @Override public void whatTheylike() { System.out.println("we like to have icecream."); } }
Human2.java
package com.cont.article; public class Human2 extends Human { @Override public void whatTheylike() { System.out.println("we like to have coffee."); } }
TestHuman.java
package com.cont.article; public class TestHuman { public static void main(String[] args) { Human human1 = new Human1(); human1.whatTheylike(); Human human2 = new Human2(); human2.whatTheylike(); human1.doTheysleep(); human2.doTheysleep(); } }
Ausgabe:
Im obigen Beispiel ist HUMAN eine abstrakte Klasse, die die allgemeinen Bedürfnisse, Vorlieben und Abneigungen eines Menschen definiert. Es gibt verschiedene Arten von Menschen mit unterschiedlichen Vorlieben und Abneigungen. So kann jeder Mensch eine spezifische Umsetzung dessen liefern, was ihm gefällt. Das gilt nur für sie.
Der Hauptvorteil der abstrakten Klasse besteht darin, dass wir eine spezifische Implementierung von Methoden entsprechend einer Anforderung haben, wodurch Redundanz reduziert, die Lesbarkeit des Codes erhöht, die Implementierung von Methoden ausgeblendet und eine teilweise Abstraktion bereitgestellt wird.
Wir können noch ein Beispiel haben, um zu verstehen, wann abstrakte Klassen verwendet werden sollten.
Nehmen wir an, wir haben eine Tierklasse. Wir haben verschiedene Tiere auf der Erde, und sie alle unterscheiden sich in einigen oder wesentlichen Punkten voneinander. Dennoch wird es alle gemeinsamen Merkmale von allen enthalten.
Diese Tierklasse kann nicht für jedes Tier spezifische Methoden haben. Durch das Konzept der Abstract-Klasse können wir diese Funktionalität also ohne redundanten Code implementieren.
Alle Tiere haben unterschiedliche Arten von Geräuschen, Gewohnheiten usw. Beispielsweise haben Hunde, Katzen, Elefanten und Snacks unterschiedliche Geräusche. Zu diesem Zweck können wir eine generische Methode in der übergeordneten Klasse haben, über die alle anderen Unterklassen oder untergeordneten Klassen ihre spezifische Implementierung bereitstellen können.
In der übergeordneten Klasse, also Animal, haben wir eine generische abstrakte Methode namens Sound(). Daher muss jede untergeordnete Klasse diese Methode überschreiben und ihre spezifische Implementierung bereitstellen.
Im Folgenden sind die Unterschiede zwischen abstrakter Klasse und Schnittstelle aufgeführt:
Eine abstrakte Klasse wird verwendet, um eine teilweise Abstraktion bereitzustellen. Eine abstrakte Klasse kann nicht mit dem Schlüsselwort NEW instanziiert werden. Eine abstrakte Methode hat keinen Körper und endet immer mit einem Semikolon (;). Die abstrakte Klasse enthält abstrakte und nicht abstrakte Methoden. Die Unterklasse einer abstrakten Oberklasse muss alle abstrakten Methoden implementieren. Wenn dies nicht der Fall ist, muss es sich selbst als abstrakte Klasse deklarieren. Eine Unterklasse kann abstrakt sein, auch wenn die Oberklasse konkret ist. Eine nicht abstrakte Klasse kann keine abstrakten Methoden enthalten. Außerdem ist die abstrakte Methode nicht statisch. Daher verfügen abstrakte Klassen auch über abstrakte und konkrete Methoden und können daher keine 100-prozentige Abstraktion bieten. Dabei handelt es sich um einen Prozess, bei dem die komplexe Logik vor dem Endbenutzer verborgen und ihm nur die Dienste angezeigt werden.
Andererseits kann eine Unterklasse abstrakt sein, auch wenn ihre Oberklasse konkret ist, und kann auch als Datentyp verwendet werden. Eine abstrakte Klasse kann statische Felder und statische Methoden haben. Sie können diese statischen Mitglieder mit einer Klassenreferenz verwenden.
Das obige ist der detaillierte Inhalt vonAbstrakte Klasse in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!