Was ist Unterschied zwischen abstrakter Klasse und Schnittstelle in Java

Was ist Unterschied zwischen abstrakter Klasse und Schnittstelle in Java

Java bietet mehrere Möglichkeiten zur Bereitstellung von Datenabstraktion wie Java -Schnittstellen und Java -Abstract -Klassen. Sowohl die Schnittstellen- als auch die abstrakte Klasse bieten Sicherheit, indem sie die internen Implementierungsdetails verbergen und nur die erforderlichen Details anzeigen/hervorheben. Es gibt jedoch zahlreiche Ähnlichkeiten und Unterschiede zwischen abstrakten Klassen und Schnittstellen.

Dieser Beitrag hilft Ihnen in den folgenden Aspekten von Java-Schnittstellen und abstrakten Klassen:

  1. Was ist eine Java -Schnittstelle.
  2. Was ist eine java abstrakte Klasse.
  3. Vergleich auf der Grundlage von Ähnlichkeiten.
  4. Java abstrakte Klasse gegen Java -Schnittstelle.

Also beginnen wir beginnen!

Was ist eine Java -Schnittstelle

Es ist eine Vorlage für eine Klasse, die einige abstrakte Methoden und statische/endgültige Variablen enthält. In Java liefern Schnittstellen nur eine Methodenerklärung, während Kinder-/implementierte Klassen die Methodendefinition bereitstellen.

Was ist eine java abstrakte Klasse

Jede Java -Klasse, die mindestens eine abstrakte Methode (nur Methodenerklärung) hat, wird als abstrakte Klasse in Java bezeichnet.

Vergleich auf der Grundlage von Ähnlichkeiten

Einige wichtige Aspekte von Java -Schnittstellen und abstrakten Klassen sind unten aufgeführt:

  • In Java können wir nicht das Objekt/die Instanz sowohl der Schnittstellen als auch der abstrakten Klassen erstellen.
  • Beide liefern dem Benutzer nur notwendige Details.
  • Beide liefern eine Abstraktion.
  • Beide können abstrakte Methoden/Funktionen haben.
  • Verstecke beide die Implementierungsinformationen/-details vor den Benutzern.

Java abstrakte Klasse gegen Java -Schnittstelle

Die Schlüsselwörter „Abstract“ und „Schnittstelle“ werden in Java verwendet, um die abstrakten Klassen bzw. Schnittstellen zu erstellen/zu deklarieren.

In Schnittstellen werden alle Mitglieder standardmäßig als öffentlich angesehen, sodass der Zugriffsmodifikator für die Mitglieder von Schnittstellen nicht angeben müssen. Während in abstrakten Klassen gibt es keine solche Einschränkung, und daher kann jeder Zugriffsmodifikator für Mitglieder abstrakter Klassen wie öffentlich, geschützt usw. verwendet werden.

Die grundlegende Syntax einer abstrakten Klasse und einer Schnittstelle ist in den folgenden Snippets gezeigt:

Abstrakte Klasse

öffentliche abstrakte Klassenklassenname
public abstract void methodname ();

Schnittstelle

öffentliche Schnittstelle interfacename
void methodname ();

Die Schnittstellen müssen alle abstrakten Methoden haben, während die abstrakten Klassen sowohl abstrakte als auch nicht abstrakte Methoden haben können.

Die Schnittstelle kann nur statische Mitglieder haben, während abstrakte Klassen statische und nicht statische Mitglieder haben können.

Schnittstellen haben nur „endgültige“ (unveränderliche) Mitglieder, während abstrakte Klassen endgültige und Nicht-Finalmitglieder haben können.

Schnittstellen haben keinen Konstruktor, während abstrakte Klassen benutzerdefinierte oder Standardkonstruktoren haben.

Multiple Vererbung kann unter Verwendung von Schnittstellen erreicht werden, während abstrakte Klassen die Mehrfachvererbung nicht unterstützen.

In Java kann die abstrakte Klasse eine andere Klasse erben und viele Schnittstellen implementieren. Andererseits kann eine Java -Schnittstelle nur eine andere Schnittstelle erweitern.

Beispiel

Mit dem folgenden Beispiel können Sie verstehen, wie Schnittstellen und abstrakte Klassen in Java funktionieren:

Schnittstelle FirstInterface
void methodone ();
void methodtwo ();
void methodThree ();

Abstract Class AbstractClass implementiert FirstInterface
public void Methodie ()
System.aus.println ("Abstract Class Implementing -Methode");


Klasse NormalClass erweitert AbstractClass
public void methodone ()
System.aus.println ("methodone implementieren");

public void methodtwo ()
System.aus.println ("implementierende methodtwo");

public void Methodie ()
System.aus.println ("implementierende Methode");


public class interfaceExample
public static void main (String [] args)
FirstInterface obj = new classThree ();
obj.methodone ();
obj.methodtwo ();
obj.methodThree ();

In diesem Beispiel haben wir eine Schnittstelle erstellt "FirstInterface", eine abstrakte Klasse "Abstrakte Klasse", und zwei weitere normale Java -Klassen und führten die folgenden Funktionen aus:

  • Der FirstInterface Enthält drei abstrakte Methoden.
  • Der Abstrakte Klasse Geräte FirstInterface und überschreibt die methodThree ().
  • Der Normalklasse erweitert die Abstrakte Klasse und überschreibt die methodone () Und methodtwo () von FirstInterface.

Der Schnittstelle ist die Hauptklasse, aus der wir die Hauptmethode erstellt und alle Methoden von aufgerufen haben FirstInterface:

Die Ausgabe bestätigte die Arbeit des oben gegebenen Java-Programms.

Abschluss

In Java kann eine Abstraktion mit abstrakten Klassen und Schnittstellen erreicht werden, und beide können nicht instanziiert werden. Es gibt jedoch mehrere Unterschiede zwischen abstrakten Klassen und Schnittstellen. Beispielsweise müssen die Schnittstellen alle abstrakten Methoden haben, während die abstrakten Klassen abstrakte und nicht abstrakte Methoden haben können. Unter Verwendung von Schnittstellen kann mehrere Vererbung erreicht werden, während abstrakte Klassen mehrerer Vererbung usw. unterstützen, usw. Dieser Beitrag erläuterte verschiedene Aspekte abstrakter Klassen und Schnittstellen mit Hilfe geeigneter Beispiele.