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

Abstraktion in Java | Abstrakte Klasse &Methode mit Beispiel

Was ist Abstraktion in Java?

Abstraktion in JAVA zeigt nur die wesentlichen Attribute und verbirgt unnötige Details des Objekts vor dem Benutzer. In Java wird die Abstraktion durch die Verwendung von Abstract-Klassen, Abstract-Methoden und Schnittstellen erreicht. Abstraktion hilft bei der Reduzierung von Programmierkomplexität und -aufwand.

In diesem Tutorial lernen Sie-

Was ist abstrakte Klasse?

ABSTRAKTE KLASSE ist ein Klassentyp in Java, der eine oder mehrere abstrakte Methoden deklariert. 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 anhand des Shape-Beispiels in Java verstehen .

Stellen Sie sich die folgende Klassenhierarchie vor, die aus einer Shape-Klasse besteht, die von den drei Klassen Rectangle, Circle und Triangle geerbt wird. Die Shape-Klasse wurde erstellt, um gemeinsame Attribute und Methoden einzusparen, die von den drei Klassen Rectangle, Circle und Triangle gemeinsam genutzt werden. computeArea() ist eine solche Methode, die von allen drei untergeordneten Klassen geteilt wird und in der Shape-Klasse vorhanden ist.

Nehmen wir nun an, Sie schreiben Code, um Objekte für die oben abgebildeten Klassen zu erstellen. Lassen Sie uns beobachten, wie diese Objekte in einer praktischen Welt aussehen werden.

Ein Objekt der Klasse Rechteck ergibt ein Rechteck, eine Form, die wir im Alltag so häufig beobachten.

Ein Objekt der Klasse Dreieck ergibt ein Dreieck, wieder eine gängige Alltagsform.

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

Wenn Sie die Shape-Klasse beobachten, dient sie unserem Ziel, Vererbung und Polymorphismus zu erreichen. Aber es wurde nicht gebaut, um instanziiert zu werden. Solche Klassen können als Abstrakt bezeichnet werden . Eine abstrakte Java-Klasse kann nicht instanziiert werden.

Syntax:

abstract class Shape{
	// code
}

Es ist möglich, dass Sie die Shape-Klasse NICHT als Abstract kennzeichnen und sie dann instanziieren. Aber ein solches Objekt wird in Ihrem Code keine Verwendung haben und einen Raum für potenzielle Fehler öffnen. Daher ist dies nicht wünschenswert.

Was sind abstrakte Methoden?

ABSTRAKTE METHODE in Java ist 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 final sein, weil die abstrakte Klasse alle abstrakten Methoden implementieren muss.

Wie wir alle wissen, ist die Formel zur Berechnung der Fläche für Rechteck, Kreis und Dreieck unterschiedlich. Die Methode computeArea() muss von den erbenden Klassen überschrieben werden. Es macht keinen Sinn, sie in der Shape-Klasse zu definieren, aber wir müssen sicherstellen, dass alle erbenden Klassen die Methode haben.

Solche Methoden können als abstrakt. bezeichnet werden

Syntax:

abstract public void calculateArea();

Für eine abstrakte Methode ist keine Implementierung erforderlich. Lediglich die Signatur der Methode ist 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();
}  
}

Abstrakte Klasse in Java:Wichtige Punkte

  • Eine abstrakte Klasse darf haben auch konkrete (vollständige) Methoden.
  • Zu Designzwecken kann eine Klasse als abstrakt deklariert werden, auch wenn sie keine abstrakten Methoden enthält
  • Die Referenz einer abstrakten Klasse kann auf Objekte ihrer Unterklassen zeigen, wodurch Laufzeitpolymorphismus erreicht wird, z. B.:Shape obj =new Rectangle();
  • Eine Klasse muss zwingend als abstrakt gekennzeichnet werden, wenn sie eine oder mehrere abstrakte Methoden hat.

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 die gleiche.

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

Beispiel :- Um abstrakte und abschließende 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) Code speichern, kompilieren und ausführen.

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

Schritt 4) Entkommentieren Sie Zeile # 13 . Speichern und kompilieren Sie den Code.

Schritt 5) Fehler =? Variable b ist final

Regeln der abstrakten Methode

  • Abstrakte Methoden haben keine Implementierung; es hat nur eine Methodensignatur
  • Wenn eine Klasse eine abstrakte Methode verwendet, müssen sie als abstrakt deklariert werden. Das Gegenteil kann nicht wahr sein. Das bedeutet, dass eine abstrakte Klasse nicht unbedingt eine abstrakte Methode haben muss.
  • Wenn eine reguläre Klasse eine abstrakte Klasse erweitert, dann muss diese Klasse alle abstrakten Methoden des abstrakten Elternteils implementieren

Java

  1. Abstrakte C#-Klasse und -Methode
  2. Abstrakte Java-Klasse und abstrakte Methoden
  3. C# Abstract Class Tutorial mit Beispiel:Was ist Abstraktion?
  4. String Length() Methode in Java:So finden Sie mit Beispiel
  5. Java String charAt() Methode mit Beispiel
  6. Java-String enthält()-Methode | Überprüfen Sie die Teilzeichenfolge mit Beispiel
  7. Java-String-EndsWith()-Methode mit Beispiel
  8. Schnittstelle vs. abstrakte Klasse in Java:Was ist der Unterschied?
  9. Java BufferedReader:Lesen von Dateien in Java mit Beispiel
  10. Insertion Sort Algorithmus in Java mit Programmbeispiel