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

Das Hauptunterschied zwischen abstrakter Klasse und Schnittstelle in Java ist das Die abstrakte Klasse wird zum Implementieren der Abstraktion verwendet, während die Schnittstelle zum Implementieren der Abstraktion sowie der Mehrfachvererbung verwendet wird.

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 Schaltkreise in der Fernbedienung nicht verstehen, um sie zu bedienen. Abstraktion ist dem ähnlich. Dadurch kann sich der Programmierer auf das konzentrieren, was das Objekt macht, anstatt darauf zu achten, wie es ausgeführt wird. In Java gibt es zwei Methoden, um eine Abstraktion zu erreichen: durch Verwendung abstrakter Klassen und durch Verwendung von Schnittstellen. Darüber hinaus ist Vererbung eine weitere Säule der OOP. Es bezieht sich auf die Verwendung von Daten und Methoden einer bereits vorhandenen Klasse. Mehrfachvererbung bezieht sich auf die Verwendung von Daten und Methoden mehrerer Klassen. Es ist möglich, Mehrfachvererbung über Schnittstellen zu implementieren.

Wichtige Bereiche

1. Was ist abstrakte Klasse in Java?
     - Definition, Funktionalität
2. Was ist Schnittstelle in Java?
     - Definition, Funktionalität
3. Was ist der Unterschied zwischen abstrakter Klasse und Schnittstelle in Java?
     - Vergleich der wichtigsten Unterschiede

Schlüsselbegriffe

Abstrakte Klasse, Schnittstelle, Mehrfachvererbung

Was ist abstrakte Klasse in Java?

Eine Klasse, die mit dem abstrakten Schlüsselwort deklariert wird, wird als abstrakte Klasse bezeichnet. Eine abstrakte Klasse kann sowohl abstrakte 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 unten stehende Beispiel.

Abbildung 1: Abstrakte Klasse formen

Abbildung 2: Rechteckklasse

Abbildung 3: Hauptklasse für Programm 1

Shape ist eine abstrakte Klasse. Es hat die abstrakte Methode Zeichnen und nicht abstrakte Methodendarstellung. Die Klasse Rectangle erweitert Shape. Daher implementiert die Rectangle-Klasse die abstrakte Methode draw. In der Hauptfunktion wird ein Rechteckobjekt 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 bei einer abstrakten 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 Schnittstellenschlüsselwort deklariert. Eine Klasse, die die Schnittstelle implementiert, sollte alle in der Schnittstelle deklarierten Methoden implementieren. Im folgenden Beispiel wird die Verwendung der Schnittstelle zum Erreichen der Abstraktion veranschaulicht.

Abbildung 4: Shape Interface

Abbildung 5: Kreisklasse

Abbildung 6: Hauptklasse des Programms 2

Shape ist eine Schnittstelle, die eine abstrakte Methode namens draw hat. Die Circle-Klasse erweitert Shape. Daher implementiert die Circle-Klasse die abstrakte Methode draw. In der Hauptfunktion wird ein Circle-Objekt erstellt. S.raw () ruft die Methode draw in Circle auf und druckt „Circle“.. 

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

Die Schnittstellen A und B haben beide eine abstrakte Methode. Klasse C implementiert beide Schnittstellen A und B. Klasse C stellt die Implementierung für die Anzeige von Methoden bereit. In der Hauptmethode wird ein Objekt von C erstellt. Das obj.display ruft die Anzeigemethode 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 ist. Hierbei handelt es sich um eine Sammlung abstrakter und nicht abstrakter Methoden. Im Gegensatz dazu ist eine Schnittstelle in Java ein Referenztyp, der einer Klasse ähnelt, bei der es sich um eine Sammlung abstrakter Methoden handelt. 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 endgültige, nicht endgültige, statische und nicht statische Variablen haben kann, kann eine Schnittstelle nur statische und endgültige Variablen haben.

Methoden

Ein weiterer Unterschied zwischen abstrakten Klassen und Schnittstellen in Java ist, dass abstrakte Klassen abstrakte Methoden und nicht abstrakte Methoden haben können, während Schnittstellen nur abstrakte Methoden haben können.

Mehrfachvererbung

Darüber hinaus können abstrakte Klassen nicht zur Implementierung von Mehrfachvererbung verwendet werden. Über Schnittstellen können jedoch mehrere Schnittstellen implementiert werden. Daher können wir die Anwendbarkeit als Unterschied zwischen abstrakter Klasse und Schnittstelle in Java bezeichnen.

Schlüsselwort der Klasse

Das abstrakte Schlüsselwort wird auch zum Deklarieren der abstrakten Klasse verwendet, das Interface-Schlüsselwort jedoch zum Deklarieren eines Interfaces. 

Erweiterung und Implementierung

Außerdem kann eine abstrakte Klasse mit dem Schlüsselwort "extend" erweitert werden. Eine Schnittstellenklasse kann mit dem Schlüsselwort "implements" implementiert werden..

Implementierung

Darüber hinaus kann die abstrakte Klasse mithilfe des Schlüsselworts "implements" implementiert werden, während die Schnittstelle zum Implementieren von Abstraktion sowie Mehrfachvererbung verwendet wird.

Fazit

Der Unterschied zwischen abstrakter Klasse und Schnittstelle in Java besteht darin, dass abstrakte Klasse zum Implementieren der Abstraktion verwendet wird, während das Interface zum Implementieren von Abstraktion sowie Mehrfachvererbung verwendet wird.

Referenz:

1. „Abstrakte Klasse in Java - Javatpoint“. Www.javatpoint.com, hier verfügbar.
2. „Schnittstelle in Java - Javatpoint“. Www.javatpoint.com, erhältlich hier.