Abstrakte Klasse in Java – Mit Beispielen

Veröffentlicht: 2022-06-24

Datenabstraktion ist die Technik, bestimmte Informationen zu verbergen und den Benutzern nur erforderliche Details anzuzeigen. Diese Datenabstraktion kann auf zwei Arten erreicht werden, abstrakte Klasse und Schnittstellen.

Inhaltsverzeichnis

Was ist eine abstrakte Klasse in Java?

Eine abstrakte Klasse in Java ist eine eingeschränkte Klasse, die mit dem Schlüsselwort abstract eingeschlossen oder deklariert ist. Eine abstrakte Klasse kann sowohl abstrakte als auch nicht abstrakte Methoden haben. Es kann nicht zum Erstellen eines Objekts verwendet werden. Um auf eine abstrakte Klasse zuzugreifen, muss sie von einer anderen Klasse geerbt werden.

Lernen Sie Softwareentwicklungskurse online von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

Regeln der abstrakten Klasse

  • Eine abstrakte Klasse kann nur innerhalb eines abstrakten Schlüsselworts deklariert werden.
  • Es kann sowohl abstrakte als auch nicht abstrakte Methoden enthalten.
  • Es kann auch endgültige Methoden haben.
  • Es kann niemals instanziiert werden.
  • Konstruktoren und statische Methoden können ebenfalls verwendet werden.

Beispiel einer abstrakten Klasse:

abstrakte Klasse B{}

Eine abstrakte Methode in Java

Diese Methode kann nur in einer abstrakten Klasse verwendet werden und enthält keinen Körper. Der Körper wird von der geerbten Unterklasse bereitgestellt.

Ein Beispiel für eine abstrakte Methode ist:

abstrakt void printStatus(); //kein Methodenrumpf und Abstract

Beispiel einer abstrakten Java-Klasse mit einer abstrakten Methode

Im folgenden Beispiel ist das Auto eine abstrakte Klasse mit einer abstrakten Methode, run. Die Implementierung erfolgt durch die Klasse Audi.

abstrakte Klasse Auto{

abstrakt void run();

}

Klasse Audi4 erweitert Bike{

void run(){System.out.println(“läuft gut”);}

public static void main(String args[]){

Auto obj = neuer Audi4 ();

obj.run();

}

}

Die Ausgabe des Programms lautet „Running fine“.

In den meisten Fällen bleibt die Implementierungsklasse unbekannt (Datenabstraktion), und ein Objekt der Implementierungsklasse wird durch die Factory-Methode erhalten.

Eine Methode, die die Klasseninstanz zurückgibt, wird Factory-Methode genannt.

Beispiel einer abstrakten Java-Klasse mit der Factory-Methode

Im folgenden Beispiel wird beim Erstellen der Instanz einer Square-Klasse die Methode draw() der Square-Klasse initiiert.

abstrakte Klasse Shape{

abstraktes void draw();

}

//Im realen Szenario wird die Implementierung von anderen bereitgestellt, dh dem Endbenutzer unbekannt

Klasse Quadrat erweitert Form {

void draw(){System.out.println("Zeichenquadrat");}

}

Klasse Circle1 erweitert Shape{

void draw(){System.out.println(“Zeichnungssechseck”);}

}

//Im realen Szenario wird die Methode vom Programmierer oder Benutzer aufgerufen

Klasse TestAbstraktion1{

public static void main(String args[]){

Shape s=new Circle1();//In einem realen Szenario wird das Objekt durch eine Methode bereitgestellt, z. B. die Methode getShape()

s.draw();

}

}

Die Ausgabe des obigen Programms ist „drawing hexagon“.

Beliebte Kurse und Artikel zum Thema Softwareentwicklung

Beliebte Programme
Executive PG-Programm in Softwareentwicklung - IIIT B Blockchain-Zertifikatsprogramm - PURDUE Programm für Cybersicherheitszertifikate - PURDUE MSC in Informatik - IIIT B
Andere beliebte Artikel
Gehalt als Cloud Engineer in den USA 2021-22 Gehalt als AWS-Lösungsarchitekt in den USA Backend-Entwicklergehalt in den USA Front-End-Entwicklergehalt in den USA
Gehalt für Webentwickler in den USA Fragen im Vorstellungsgespräch für Scrum Master im Jahr 2022 Wie starte ich 2022 eine Karriere in der Cybersicherheit? Karrieremöglichkeiten in den USA für Ingenieurstudenten

Wann sollte eine abstrakte Klasse in Java verwendet werden?

Im Folgenden sind einige Szenarien aufgeführt, in denen eine abstrakte Klasse verwendet werden kann:

  • Beim Versuch, das Konzept der Vererbung in Code einzuführen (um Code zwischen verschiedenen relevanten Klassen gemeinsam zu nutzen), indem gemeinsame Methoden einer Basisklasse verwendet werden.
  • Wenn die Anforderungen spezifisch sind und die Implementierungsdetails unvollständig sind.
  • Wenn Klassen, die zum Erweitern einer abstrakten Klasse verwendet werden, mehrere gemeinsame Felder oder Methoden haben, die nicht öffentliche Modifikatoren erfordern.
  • Wenn nicht endgültige oder nicht statische Methoden verwendet werden, um den Objektstatus zu ändern.

Wann sollte eine Schnittstelle in Java zur Abstraktion verwendet werden?

Die folgenden Szenarien erfordern eine Java-Schnittstelle, um Abstraktion zu erreichen:

  • Um Funktionalitäten von Mehrfachvererbungen zu unterstützen
  • Um eine lockere Kopplung zu erreichen

Deklarieren einer Schnittstelle

Die Schnittstelle sollte nur durch das Schlüsselwort interface deklariert werden. Dies führt zu einer vollständigen Abstraktion, sodass alle Vererbungsmethoden in einem leeren Körper deklariert werden und alle Felder standardmäßig öffentlich, statisch und endgültig werden. Die Klasse, die die Schnittstelle implementiert, sollte alle Methoden implementieren, die in der Schnittstelle deklariert sind.

Beispiel einer Java-Schnittstelle

Im folgenden Beispiel hat die druckbare Schnittstelle nur eine Methode, deren Implementierung in Klasse A6 bereitgestellt wird.

Schnittstelle druckbar{

void print();

}

Klasse A6 implementiert druckbare {

public void print(){System.out.println("Willkommen");}

public static void main(String args[]){

A6 obj = neu A6();

obj.print();

}

}

Die Ausgabe des Programms wird sein

Herzlich willkommen.

Beispiel 2:

Schnittstelle Bank{

float rateOfInterest ();

}

Klasse BOI implementiert Bank{

öffentlicher Float rateOfInterest() {return 8.5f;}

}

Klasse CUB implementiert Bank{

öffentlicher Float rateOfInterest() {return 9.2f;}

}

Klasse TestInterface2{

public static void main(String[] args){

Bank b=neues BOI();

System.out.println("ROI: "+b.rateOfInterest());

}}

Die Ausgabe des obigen Programms wird sein

Rendite: 8,5

Vorteile der Abstraktion in Java

  • Lose Kopplung: Abstraktion in Java hilft bei der losen Kopplung, indem sie die abhängigen Entitäten auf einer exponentiellen Ebene abschwächt.
  • Wiederverwendbare Codes: Die abstrakte Klasse in Java spart viel Zeit. Die abstrakte Methode kann nur bei Bedarf aufgerufen werden. Die abstrakte Klasse vermeidet das erneute Schreiben derselben Codes und spart dadurch Zeit.
  • Datenschutz: Die Datenabstraktion in Java hilft, die sensiblen Codedetails vor den Benutzern zu verbergen. Es hilft dabei, wichtige Projektfunktionen auszublenden und nur wesentliche Komponenten anzuzeigen.
  • Schnellere Problemlösung: Mit Hilfe der dynamischen Methodenlösung können verschiedene Probleme und Komplikationen gelöst werden, indem nur eine abstrakte Methode verwendet wird.

Um mehr über Datenabstraktion in Java und Softwareentwicklung zu erfahren, melden Sie sich für das Executive Post Graduate Program in Software Development an, das vom IIIT Bangalore in Zusammenarbeit mit upGrad angeboten wird.

Das Executive Postgraduate-Programm in Softwareentwicklung ist ein 13-monatiges Online-Programm. Der Lehrplan ist speziell für Berufstätige konzipiert, damit sie sich auf das Lernen konzentrieren können, ohne ihre Arbeit aufzugeben. Der Lehrplan umfasst industriebasierte Projekte und Fallstudien. Darüber hinaus bietet das Programm über 10 Live-Sessions von Branchenexperten, um den Kandidaten zu helfen, sich über die aktuellen Trends in der Branche auf dem Laufenden zu halten.

Können wir eine abstrakte Klasse ohne abstrakte Methode haben?

Ja. Es ist möglich, eine abstrakte Klasse ohne abstrakte Methode zu haben, da es sich bei beiden um unabhängige Techniken handelt. Das Deklarieren einer abstrakten Klasse impliziert, dass sie nicht allein instanziiert werden kann und nur mit Hilfe einer Unterklasse durchgeführt werden kann. Das Definieren einer abstrakten Methode bedeutet, dass die Methode in der Unterklasse definiert oder enthalten ist.

Warum ist Datenabstraktion unerlässlich?

Ja. Es ist möglich, eine abstrakte Klasse ohne abstrakte Methode zu haben, da es sich bei beiden um unabhängige Techniken handelt. Das Deklarieren einer abstrakten Klasse impliziert, dass sie nicht allein instanziiert werden kann und nur mit Hilfe einer Unterklasse durchgeführt werden kann. Das Definieren einer abstrakten Methode bedeutet, dass die Methode in der Unterklasse definiert oder enthalten ist.

Wie unterscheidet sich die Datenabstraktion von der Kontrollabstraktion?

Datenabstraktion ist der Prozess, komplexe und komplizierte Datentypen zu erstellen, aber nur wesentliche Details hervorzuheben oder offenzulegen. Kontrollabstraktion ist der Prozess, der sich mit dem Softwareteil der Abstraktion befasst. Es ist der Prozess, bei dem das Programm zerlegt oder vereinfacht wird und unerwünschte Details der Programmausführungen verborgen werden. Die Kontrollabstraktion wird hauptsächlich verwendet, um neue Funktionalitäten zu generieren und verschiedene Kontrollanweisungen zu einer einzigen Entität zu verschmelzen.