Was ist der Unterschied zwischen abstrakter Klasse und Schnittstelle in Java?

Inhaltsverzeichnis:

Anonim

Die Hauptunterschied zwischen abstrakter Klasse und Schnittstelle in Java ist, dass die Die abstrakte Klasse wird verwendet, um die Abstraktion zu implementieren, während die Schnittstelle verwendet wird, um die Abstraktion sowie die Mehrfachvererbung zu implementieren.

Eine wichtige Säule der objektorientierten Programmierung (OOP) ist die Abstraktion. Dabei werden die Implementierungsdetails ausgeblendet und dem Benutzer nur die Funktionalität angezeigt. Zum Beispiel muss der Benutzer die Schaltung innerhalb der Fernbedienung nicht verstehen, um sie zu bedienen. Abstraktion ist ähnlich. Es ermöglicht dem Programmierer, sich auf das zu konzentrieren, was das Objekt tut, anstatt darauf, wie es gemacht wird. In Java gibt es zwei Methoden, um Abstraktion zu erreichen: durch die Verwendung abstrakter Klassen und durch die Verwendung von Schnittstellen. Darüber hinaus ist die Vererbung eine weitere OOP-Säule. Es bezieht sich auf die Verwendung von Daten und Methoden einer bereits existierenden Klasse. Mehrfachvererbung bezieht sich auf die Verwendung von Daten und Methoden mehrerer Klassen. Es ist möglich, eine Mehrfachvererbung über Schnittstellen zu implementieren.

Abstrakte Klasse, Schnittstelle, Mehrfachvererbung

Was ist abstrakte Klasse in Java?

Eine mit dem Schlüsselwort abstract deklarierte Klasse wird als abstrakte Klasse bezeichnet. Eine abstrakte Klasse kann sowohl abstrakte Methoden als auch nicht-abstrakte Methoden haben. Eine Klasse kann eine abstrakte Klasse erweitern und die abstrakten Methoden der abstrakten Klasse implementieren. Es ist nicht möglich, Objekte aus einer abstrakten Klasse zu erstellen, aber es ist möglich, Objekte aus einer Klasse zu erstellen, die die abstrakte Klasse erweitert. Siehe das folgende Beispiel.

Abbildung 1: Form abstrakte Klasse

Abbildung 2: Rechteckklasse

Abbildung 3: Hauptklasse für Programm 1

Shape ist eine abstrakte Klasse. Es hat die abstrakte Methode draw und die nicht-abstrakte Methode display. Die Rectangle-Klasse erweitert Shape. Daher implementiert die Klasse Rectangle die abstrakte Methode draw. In der Hauptfunktion wird ein Rectangle-Objekt erstellt. Die obj.draw() ruft die Methode in Rectangle draw() auf und gibt „Rectangle“ aus.

Was ist Schnittstelle in Java?

Eine Schnittstelle in Java ähnelt einer Klasse. Alle Methoden in einer Schnittstelle sind abstrakte Methoden. Ähnlich wie eine abstrakte Klasse kann eine Schnittstelle nicht instanziiert werden. Eine Schnittstelle kann sowohl zur Abstraktion als auch zur Implementierung von Mehrfachvererbung verwendet werden. Eine Schnittstelle wird mit dem Schlüsselwort interface deklariert. Eine Klasse, die die Schnittstelle implementiert, sollte alle Methoden implementieren, die in der Schnittstelle deklariert sind. Sehen Sie sich das folgende Beispiel an, das die Verwendung der Schnittstelle veranschaulicht, um Abstraktion zu erreichen.

Abbildung 4: Shape-Schnittstelle

Abbildung 5: Kreisklasse

Abbildung 6: Hauptklasse des Programms 2

Shape ist eine Schnittstelle mit einer abstrakten Methode namens draw. Die Circle-Klasse erweitert Shape. Daher implementiert die Circle-Klasse die abstrakte Methode draw. In der Hauptfunktion wird ein Circle-Objekt erstellt. s.draw() ruft die Methode draw in Circle auf und gibt „Circle“ aus.

Schnittstellen können auch verwendet werden, um Mehrfachvererbung zu implementieren.

Abbildung 7: Schnittstelle A

Abbildung 8: Schnittstelle B

Abbildung 9: Klasse C

Abbildung 10: Hauptklasse des Programms 3

Interface A und B haben beide die abstrakte Methodenanzeige. Klasse C implementiert sowohl Interface A als auch B. Klasse C stellt die Implementierung für die Methodenanzeige bereit. In der Methode main wird ein Objekt von C erstellt. Das obj.display ruft die Display-Methode in C auf und gibt „Hello World!“ aus.

Unterschied zwischen abstrakter Klasse und Schnittstelle in Java

Definition

Eine abstrakte Klasse ist eine Klasse, die mit einem abstrakten Schlüsselwort deklariert wird, bei dem es sich um eine Sammlung abstrakter und nicht abstrakter Methoden handelt. Im Gegensatz dazu ist eine Schnittstelle in Java ein Referenztyp, der einer Klasse ähnelt, die eine Sammlung abstrakter Methoden ist. Dies ist der grundlegende Unterschied zwischen abstrakter Klasse und Schnittstelle in Java.

Variablen

Die verwendeten Variablen sind ein Unterschied zwischen abstrakter Klasse und Schnittstelle in Java. Während eine abstrakte Klasse finale, nicht finale, statische und nicht statische Variablen haben kann, kann eine Schnittstelle nur statische und finale Variablen haben.

Methoden

Ein weiterer Unterschied zwischen abstrakter Klasse und Schnittstelle in Java besteht darin, dass abstrakte Klassen abstrakte Methoden und nicht abstrakte Methoden haben können, während Schnittstellen nur abstrakte Methoden haben können.

Mehrfachvererbung

Stichwort der Klasse

Außerdem wird das abstrakte Schlüsselwort verwendet, um die abstrakte Klasse zu deklarieren, aber das Interface-Schlüsselwort wird verwendet, um eine Schnittstelle zu deklarieren.

Erweitern und Implementieren

Außerdem kann eine abstrakte Klasse mit dem Schlüsselwort „extends“ erweitert werden. Eine Interface-Klasse kann mit dem Schlüsselwort „implements“ implementiert werden.

Implementierung

Darüber hinaus kann die abstrakte Klasse mit dem Schlüsselwort „implements“ implementiert werden, während die Schnittstelle verwendet wird, um Abstraktion sowie Mehrfachvererbung zu implementieren.

Abschluss

Der Unterschied zwischen abstrakter Klasse und Schnittstelle in Java besteht darin, dass abstrakte Klasse verwendet wird, um Abstraktion zu implementieren, während Schnittstelle verwendet wird, um Abstraktion sowie Mehrfachvererbung zu implementieren.

Referenz:

1. „Abstrakte Klasse in Java – Javatpoint.“ www.javatpoint.com, hier verfügbar.2. „Schnittstelle in Java – Javatpoint.“ www.javatpoint.com, hier verfügbar.

Was ist der Unterschied zwischen abstrakter Klasse und Schnittstelle in Java?