Empfohlen, 2024

Tipp Der Redaktion

Unterschied zwischen Klasse und Schnittstelle in Java

Sowohl Klasse als auch Schnittstelle werden zum Erstellen neuer Referenztypen verwendet. Eine Klasse ist eine Sammlung von Feldern und Methoden, die Felder bearbeiten. Eine Schnittstelle verfügt über vollständig abstrakte Methoden, dh Methoden mit niemandem. Eine Schnittstelle ist der Klasse syntaktisch ähnlich, es besteht jedoch ein wesentlicher Unterschied zwischen Klasse und Schnittstelle, dass eine Klasse instanziiert werden kann, aber eine Schnittstelle kann niemals instanziiert werden. Lassen Sie uns anhand einer Vergleichstabelle (siehe unten) etwas mehr Unterschied zwischen einer Klasse und einem Interface erfahren.

Vergleichstabelle

VergleichsgrundlageKlasseSchnittstelle
BasicEine Klasse wird instanziiert, um Objekte zu erstellen.Eine Schnittstelle kann nie instantiiert werden, da die Methoden beim Aufrufen keine Aktion ausführen können.
StichwortKlasseSchnittstelle
ZugriffsbezeichnerDie Mitglieder einer Klasse können privat, öffentlich oder geschützt sein.Die Mitglieder einer Schnittstelle sind immer öffentlich.
MethodenDie Methoden einer Klasse werden definiert, um eine bestimmte Aktion auszuführen.Die Methoden in einer Schnittstelle sind rein abstrakt.
Implementieren / erweiternEine Klasse kann eine beliebige Anzahl von Schnittstellen implementieren und kann nur eine Klasse erweitern.Eine Schnittstelle kann mehrere Schnittstellen erweitern, kann jedoch keine Schnittstelle implementieren.
KonstrukteurEine Klasse kann über Konstruktoren verfügen, um die Variablen zu initialisieren.Eine Schnittstelle kann niemals einen Konstruktor haben, da es kaum eine zu initialisierende Variable gibt.

Definition der Klasse

Eine Klasse ist ein sehr wichtiger Aspekt der Java-Programmierung, ohne Klassen, mit denen Sie kein Java-Programm implementieren können. Eine Klasse erstellt Referenztypen, und diese Referenztypen werden zum Erstellen von Objekten verwendet. Eine Klasse hat eine Signatur und einen Körper. Die Signatur einer Klasse enthält den Namen der Klasse und Informationen, die angeben, ob die Klasse eine andere Klasse geerbt hat. Der Hauptteil einer Klasse verfügt über Felder und Methoden, die auf diese Felder wirken. Eine Klasse wird mit einer Schlüsselwortklasse erstellt. Lasst uns sehen, wie man eine Klasse deklariert.

 Klasse Klassenname {/ * Felder ... Methoden * /} 

Wenn eine Klasse instanziiert wird, enthält jedes erstellte Objekt eine Kopie von Feldern und Methoden. Die in einer Klasse deklarierten Felder und Member können statisch oder nicht statisch sein. Der statische Elementwert ist für jedes Objekt konstant, wohingegen die nicht statischen Elemente von jedem Objekt je nach Anforderung unterschiedlich initialisiert werden.

Mitglieder einer Klasse haben Zugriffspezifizierer, die die Sichtbarkeit und den Zugriff der Mitglieder auf den Benutzer oder die Unterklassen festlegen. Die Zugriffspezifizierer sind öffentlich, privat und geschützt. Eine Klasse kann von einer anderen Klasse mit dem Zugriffsbezeichner geerbt werden, der die Sichtbarkeit von Mitgliedern einer Oberklasse (geerbte Klasse) in einer Unterklasse (erbende Klasse) bestimmt. Somit erfüllt die Klasse das Konzept des Verdeckens und Verkapselns von Daten in der objektorientierten Programmierung.

Definition der Schnittstelle

Eine Schnittstelle gehört auch zu den in Java definierten Referenztypen. Die Bedeutung einer Schnittstelle besteht darin, dass in Java eine Klasse nur eine einzelne Klasse erben kann. Um diese Einschränkung zu vermeiden, haben die Entwickler von Java ein Konzept der Schnittstelle eingeführt. Eine Schnittstelle ähnelt syntaktisch einer Klasse, es fehlt jedoch eine Felddeklaration, und die Methoden innerhalb einer Schnittstelle haben keine Implementierung. Eine Schnittstelle wird mit einer Schlüsselwortschnittstelle deklariert. Lassen Sie uns die Deklaration einer Schnittstelle betrachten.

 Schnittstelle Schnittstellenname {Typ Variablenname = Wert; Typ method1 (Parameterliste); Typ Methode2 (Parameterliste); . . } 

Eine Schnittstelle definiert keine in ihr deklarierte Methode, weil sie in Feldern fehlt, die bearbeitet werden können. Nur weil eine Methode innerhalb einer Schnittstelle keine Aktion ausführt, kann eine Schnittstelle niemals instanziiert werden. Wenn eine Schnittstelle über ein Feldmitglied verfügt, muss es zum Zeitpunkt ihrer Deklaration initialisiert werden. Eine Schnittstelle enthält niemals Konstruktoren, da sie nicht in Feldmitgliedern vorhanden ist, um initialisiert zu werden. Eine Schnittstelle definiert also nur, was eine Klasse tun muss, anstatt wie sie ausgeführt werden muss.

Eine einmal erstellte Schnittstelle kann von einer beliebigen Anzahl von Klassen mit einem Schlüsselwort implementiert werden . Die Klassen, die eine Schnittstelle implementieren, müssen jedoch alle Methoden innerhalb einer Schnittstelle definieren. Eine Schnittstelle kann auch eine andere Schnittstelle mit dem Schlüsselwort extend erben. Wenn eine Klasse eine Schnittstelle implementiert, die eine andere Schnittstelle erweitert. Dann muss eine Klasse die Methoden der beiden Schnittstellen definieren, die in einer Kette erscheinen. Die Methoden innerhalb einer Schnittstelle müssen immer öffentlich sein, da sie von den implementierenden Klassen aufgerufen werden müssen.

Hauptunterschiede zwischen Klasse und Schnittstelle in Java

  1. Eine Klasse kann durch Erstellen ihrer Objekte instanziiert werden. Eine Schnittstelle wird nie instanziiert, da die innerhalb einer Schnittstelle deklarierten Methoden abstrakt sind und keine Aktion ausführen. Daher kann keine Schnittstelle instanziiert werden.
  2. Eine Klasse wird mit einer Schlüsselwortklasse deklariert. Auf dieselbe Weise wird eine Schnittstelle mit einer Schlüsselwortschnittstelle erstellt.
  3. Die Mitglieder einer Klasse können den Zugriffsbezeichner public, private und protected haben. Die Mitglieder einer Schnittstelle sind jedoch immer öffentlich, da sie von den implementierenden Klassen aufgerufen werden müssen.
  4. Die Methoden innerhalb einer Klasse werden definiert, um eine Aktion für die in der Klasse deklarierten Felder auszuführen. Da die Schnittstelle bei der Deklaration von Feldern fehlt, sind die Methoden innerhalb einer Schnittstelle rein abstrakt.
  5. Eine Klasse kann eine beliebige Anzahl von Schnittstellen implementieren, kann jedoch nur eine Superklasse erweitern. Eine Schnittstelle kann beliebig viele Schnittstellen erweitern, jedoch keine Schnittstelle implementieren.
  6. In einer Klasse sind Konstruktoren definiert, um die Variable zu initialisieren. Eine Schnittstelle hat jedoch keine Konstruktoren, da keine zu initialisierenden Felder vorhanden sind. Die Felder einer Schnittstelle werden nur zum Zeitpunkt ihrer Deklaration initialisiert.

Fazit:

Sowohl Klassen als auch Schnittstellen haben ihre eigene Bedeutung. Eine Klasse wird verwendet, wenn definiert werden muss, wie die Aufgabe ausgeführt wird. Eine Schnittstelle wird verwendet, wenn wir wissen müssen, welche Aufgabe erledigt werden muss.

Top