Abstraktion ein Java

Was ist Abstraktion in Java?

Abstraktion ist das Konzept der objektorientierten Programmierung, das nur wesentliche Attribute „zeigt“ und unnötige Informationen „verbirgt“. Der Hauptzweck der Abstraktion besteht darin, den Benutzern unnötige Details vorzuenthalten. Bei der Abstraktion werden Daten aus einem größeren Pool ausgewählt, um dem Benutzer nur relevante Details des Objekts anzuzeigen. Dies trägt dazu bei, die Komplexität und den Aufwand der Programmierung zu reduzieren. Es ist eines der wichtigsten Konzepte der OOP.

Klicke hier wenn das Video nicht zugänglich ist

Lassen Sie uns die Abstraktion in OOPs anhand eines Beispiels untersuchen:

Angenommen, Sie möchten eine Bankanwendung erstellen und werden aufgefordert, alle Informationen über Ihren Kunden zu sammeln. Es besteht die Möglichkeit, dass Sie folgende Informationen über den Kunden erhalten:

Abstraktion ein Java
Abstraktion ein Java

Aber nicht alle der oben genannten Informationen sind erforderlich, um eine Bankanwendung zu erstellen. Sie müssen also nur die nützlichen Informationen für Ihre Bankanwendung aus diesem Pool. Daten wie Name, Adresse, Steuerinformationen usw. sind für eine Bankanwendung sinnvoll, die ein Abstraktionsbeispiel in OOPs ist

Abstraktion ein Java

Da wir die Kundeninformationen aus einem größeren Pool abgerufen/entfernt/ausgewählt haben, wird der Vorgang als Abstraktion bezeichnet Hoppla. Dieselben Informationen können jedoch nach der Extraktion für eine Vielzahl von Anwendungen verwendet werden. Sie können beispielsweise dieselben Daten mit nur geringen oder keinen Änderungen für eine Krankenhausbewerbung, eine Bewerbung auf einem Jobportal, eine Regierungsdatenbank usw. verwenden. Daher werden sie zu Ihren Stammdaten. Dies ist ein Vorteil der Abstraktion in OOPs.

Unterschied zwischen Abstraktion und Verkapselung

Abstraktion Kapselung
Abstraktion in der objektorientierten Programmierung löst die Probleme auf Entwurfsebene. Die Kapselung löst die Implementierungsebene.
Bei der Abstraktion in der Programmierung geht es darum, unerwünschte Details zu verbergen und gleichzeitig die wichtigsten Informationen anzuzeigen. Kapselung bedeutet, den Code und die Daten in einer einzigen Einheit zusammenzufassen.
Datenabstraktion in Java ermöglicht die Konzentration auf den Inhalt des Informationsobjekts Kapselung bedeutet, die internen Details oder Mechanismen der Funktionsweise eines Objekts aus Sicherheitsgründen zu verbergen.

Unterschied zwischen abstrakter Klasse und Schnittstelle

Abstrakte Klasse Interface
Eine abstrakte Klasse kann sowohl abstrakte als auch nicht abstrakte Methoden haben. Die Schnittstelle kann nur abstrakte Methoden haben.
Mehrfachvererbungen werden nicht unterstützt. Es unterstützt Mehrfachvererbungen.
Es kann die Implementierung der Schnittstelle bereitstellen. Die Implementierung der abstrakten Klasse kann nicht bereitgestellt werden.
Eine abstrakte Klasse kann geschützte und abstrakte öffentliche Methoden haben. Eine Schnittstelle kann nur über öffentliche abstrakte Methoden verfügen.
Eine abstrakte Klasse kann eine endgültige, statische oder statische Endvariable mit einem beliebigen Zugriffsspezifizierer haben. Die Schnittstelle kann nur eine öffentliche statische Endvariable haben.

Was ist Abstraktklasse?

ABSTRAKTE KLASSE ist ein Klassentyp in Java, die eine oder mehrere abstrakte Methoden deklarieren. Diese Klassen können sowohl abstrakte als auch konkrete Methoden haben. Eine normale Klasse kann keine abstrakten Methoden haben. Eine abstrakte Klasse ist eine Klasse, die mindestens eine abstrakte Methode enthält. Wir können das Konzept verstehen durch die Formbeispiel in Java.

Betrachten Sie die folgende Klassenhierarchie, die aus einer Shape-Klasse besteht, die von drei Klassen geerbt wird: Rectangle, Circle und Triangle. Die Shape-Klasse wird erstellt, um gemeinsame Attribute und Methoden zu speichern, die von den drei Klassen Rectangle, Circle und Triangle gemeinsam genutzt werden. calculateArea() ist eine solche Methode, die von allen drei untergeordneten Klassen gemeinsam genutzt wird und in der Shape-Klasse vorhanden ist.

Abstrakte Klasse in Java

Beispiel für eine Formabstraktion

Nehmen wir nun an, Sie schreiben Code, um Objekte für die oben dargestellten Klassen zu erstellen. Beobachten wir, wie diese Objekte werden in einer praktischen Welt aussehen. Ein Objekt der Klasse „Rechteck“ ergibt ein Rechteck, eine Form, die wir im Alltag so häufig beobachten.

Abstrakte Klasse

Ein Objekt der Klasse Dreieck ergibt ein Dreieck, wiederum eine alltägliche Alltagsform.

Abstrakte Klasse

Aber wie würde ein Objekt der Klassenform in einer praktischen Welt aussehen?

Abstrakte Klasse

Wenn Sie beobachten, dient die Shape-Klasse in unser Ziel zu erreichen Erbschaft und Polymorphismus. Aber es wurde nicht für die Instanziierung erstellt. Solche Klassen können beschriftet werden Abstrakt. Eine abstrakte Java-Klasse kann nicht instanziiert werden.

Syntax:

abstract class Shape{
	// code
}

Es ist möglich, dass Sie die Shape-Klasse NICHT als „Abstrakt“ kennzeichnen und sie dann instanziieren. Ein solches Objekt wird jedoch in Ihrem Code keinen Nutzen haben und Raum für potenzielle Fehler schaffen. Daher ist dies nicht wünschenswert.

Was sind abstrakte Methoden in Java?

ABSTRAKTE METHODE in Javaist eine Methode, die nur die Methodendefinition hat, aber keine Implementierung enthält. Eine Methode ohne Körper wird als abstrakte Methode bezeichnet. Es muss in einer abstrakten Klasse deklariert werden. Die abstrakte Methode wird niemals endgültig sein, da die abstrakte Klasse alle abstrakten Methoden implementieren muss.

Wie wir alle wissen, ist die Formel zur Flächenberechnung für Rechtecke, Kreise und Dreiecke unterschiedlich. Die Methode „calcureArea()“ muss von den erbenden Klassen überschrieben werden. Es macht keinen Sinn, es in der Shape-Klasse zu definieren. Wir müssen jedoch sicherstellen, dass alle erbenden Klassen über die Methode verfügen.

Solche Methoden können beschriftet werden abstrakt.

Syntax:

abstract public void calculateArea();

Für ein abstrakte Methode, keine Implementierung erforderlich. Es wird nur die Signatur der Methode definiert.

Beispiel für einen Abstraktionscode

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

Vorteile der Abstraktion

  • Der Hauptvorteil der Verwendung einer Abstraktion in Programmierung besteht darin, dass Sie mehrere verwandte Klassen als Geschwister gruppieren können.
  • Abstraktion in der objektorientierten Programmierung trägt dazu bei, die Komplexität des Entwurfs- und Implementierungsprozesses von Software zu reduzieren.

Letztes Schlüsselwort in Java

Der letzte Modifikator gilt für Klassen, Methoden und Variablen. Die Bedeutung von final variiert von Kontext zu Kontext, aber die Grundidee ist dieselbe.

  • Eine letzte Klasse kann nicht vererbt werden
  • Eine letzte Variable wird zu einer Konstante und ihr Wert kann nicht geändert werden.
  • Eine letzte Methode kann nicht überschrieben werden. Dies geschieht aus Sicherheitsgründen und diese Methoden dienen der Optimierung.

Beispiel :- Um abstrakte und endgültige Schlüsselwörter zu lernen

Schritt 1) Kopieren Sie den folgenden Code in einen Editor.

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;
  }
  //public void calculateArea(){}
}

Schritt 2) Speichern, kompilieren und führen Sie den Code aus.

Schritt 3) Fehler =? Die abstrakte Methode ist nicht in der Klasse Rechteck implementiert. Um das Problem zu beheben, kommentieren Sie Zeile Nr. 15 aus.

Schritt 4) Kommentieren Sie Zeile Nr. 13 aus. Speichern und kompilieren Sie den Code.

Schritt 5) Fehler = ? Variable b ist endgültig

Wann sollten abstrakte Methoden und abstrakte Klassen verwendet werden?

Abstrakte Methoden werden meist dort deklariert, wo zwei oder mehr Unterklassen durch unterschiedliche Implementierungen dasselbe auf unterschiedliche Weise tun. Es erweitert außerdem dieselbe Abstract-Klasse und bietet verschiedene Implementierungen der abstrakten Methoden.

Abstrakte Klassen helfen dabei, generische Verhaltenstypen und die Klassenhierarchie der objektorientierten Programmierung zu beschreiben. Sie beschreiben auch Unterklassen, um Implementierungsdetails der abstrakten Klasse bereitzustellen.

Zusammenfassung:

  • Abstraktion in der Programmierung ist der Prozess der Auswahl wichtiger Datensätze für eine Betreff in Ihrer Software und lassen Sie die unbedeutenden weg.
  • Sobald Sie Ihr Objekt mit Datenabstraktion modelliert haben in Java, derselbe Datensatz könnte in verschiedenen Anwendungen verwendet werden.