Unterschied zwischen Vererbung und Schnittstelle in Java

Schlüsseldifferenz - Vererbung vs Schnittstelle in Java
 

Java ist eine von Sun Microsystems entwickelte Programmiersprache. Mit Java können verschiedene Anwendungen entwickelt werden. Es ist eine Sprache mit mehreren Paradigmen, die objektorientiert, strukturiert usw. unterstützt. Der Hauptvorteil von Java ist, dass es objektorientierte Programmierung (OOP) unterstützt. Der Programmierer kann Klassen und Objekte erstellen. Es gibt vier Säulen in OOP. Sie sind Vererbung, Polymorphismus, Abstraktion und Verkapselung. Vererbung und Schnittstellen beziehen sich auf OOP. Das Hauptunterschied zwischen Vererbung und Schnittstelle ist das Vererbung soll neue Klassen von vorhandenen Klassen ableiten, und ein Interface implementiert abstrakte Klassen und Mehrfachvererbung.

INHALT

1. Übersicht und Schlüsseldifferenz
2. Was ist Vererbung in Java?
3. Was ist Schnittstelle in Java?
4. Ähnlichkeiten zwischen Vererbung und Schnittstelle in Java
5. Side-by-Side-Vergleich - Vererbung vs. Schnittstelle in Java in Tabellenform
6. Zusammenfassung

Was ist Vererbung in Java??

Vererbung kann die Wiederverwendbarkeit von Code erreichen. Vererbung hilft bei der Wiederverwendung der Attribute und Methoden einer vorhandenen Klasse. Der Mechanismus zum Ableiten einer neuen Klasse unter Verwendung der alten Klasse wird Vererbung genannt. Die alte Klasse wird als übergeordnete Klasse oder Superklasse bezeichnet. Die abgeleitete Klasse wird als untergeordnete Klasse oder Unterklasse bezeichnet.

Die Syntax der Java-Vererbung lautet wie folgt.

Klassenunterklassenname erweitert Superklassenname

variable Aussage;

Methodendeklaration;

Das Vererbungskonzept kann anhand des folgenden Beispiels erläutert werden. Angenommen, es gibt eine Klasse mit der Bezeichnung A wie folgt.

öffentliche Klasse A

öffentliche nichtige Summe ()

System.out.println ("Summe");

Wenn Sie eine neue Methode hinzufügen möchten, ohne die vorhandene Klasse zu ändern, können Sie dies wie folgt tun.

öffentliche Klasse B

public void sub ()

System.out.println ("Sub");

Programmierer können Vererbung verwenden, um Klasse A sum () zu verwenden..

öffentliche Klasse B erweitert Klasse A

public void sub ()

System.out.println ("Sub");

In der Hauptfunktion ist es möglich, ein Objekt aus B zu erstellen und sub () aufzurufen, das zur Klasse B gehört, und sum (), die zur Klasse A gehört, indem es Vererbung verwendet.

public static void main (String [] args)

B obj = neues B ();

obj ();

obj.sum ();

Es gibt verschiedene Arten der Vererbung. Sie sind einfache Vererbung, mehrfache Vererbung, mehrstufige Vererbung und hierarchische Vererbung. Im einzelne Vererbung, Es gibt eine Basisklasse und eine abgeleitete Klasse. Im mehrstufige Vererbung, Es gibt drei Klassen, nämlich Basisklasse, Zwischenklasse und abgeleitete Klasse. Die Zwischenklasse erbt von der Basisklasse und die abgeleitete Klasse von der Zwischenklasse. Im hierarchische Vererbung, Es gibt eine Basisklasse und viele abgeleitete Klassen. Es gibt einen speziellen Typ, der als bekannt ist Hybride Vererbung. Es ist eine Kombination aus zwei oder mehr Arten der Vererbung.

Abbildung 01: Vererbung

Im Mehrfachvererbung Es gibt viele Basisklassen und eine abgeleitete Klasse. Angenommen, die Klassen A und B sind die Basisklassen. Klasse C ist die abgeleitete Klasse. Wenn beide Klassen A und B dieselbe Methode haben und der Programmierer diese Methode von der abgeleiteten Klasse aus aufruft, führt dies zu einem Mehrdeutigkeitsproblem. Das Vererben von zwei Klassen kann einen Fehler bei der Kompilierung verursachen. Daher wird in Java keine Mehrfachvererbung unterstützt. Eine Schnittstelle kann verwendet werden, um dieses Problem zu überwinden.

Was ist Schnittstelle in Java??

Bei der Abstraktion werden die Implementierungsdetails ausgeblendet und dem Benutzer nur die Funktionalitäten angezeigt. Abstraktion kann mit abstrakten Klassen oder Schnittstellen erzielt werden. Eine abstrakte Methode ist eine Methode ohne Implementierung. Eine Klasse mit mindestens einer abstrakten Methode ist eine abstrakte Klasse. Ein Beispiel für eine abstrakte Klasse ist wie folgt.

abstrakte Klasse A

abstrakte Leersumme ();

Angenommen, es gibt zwei abstrakte Klassen als A und B. Um abstrakte Methoden von A und B zu implementieren, wird eine neue Klasse C erstellt. Dann sollte die Klasse C sowohl A als auch B erweitern. In Java wird jedoch keine Mehrfachvererbung unterstützt. Daher sollten Schnittstellen verwendet werden. Über Schnittstellen können Methoden deklariert werden, Methoden können jedoch nicht definiert werden. Es ist nicht möglich, ein Objekt über Schnittstellen zu erstellen. Die Klasse C sollte alle Methoden in den Schnittstellen A und B implementieren.

Schnittstelle A

ungültige Summe ();

Schnittstelle B

void sub ();

Klasse C implementiert A, B

öffentliche nichtige Summe ()

System.out.println ("Summation");

public void sub ()

System.out.println ("Subtraktion");

Im Hauptprogramm ist es nun möglich, ein Objekt von C zu erstellen und beide Methoden aufzurufen.

public static void main (String [] args)

C obj = neues C ();

obj.sum ();

obj ();

Schnittstellen können also zur Implementierung mehrerer Vererbung verwendet werden.

Eine weitere Verwendung von Schnittstellen besteht darin, dass sie Sicherheit bietet. Siehe den Code unten.

Schnittstelle A

ungültige Summe ();

Klasse B implementiert A

öffentliche nichtige Summe ()

System.out.println ("Summation");

public void multiply ()

System.out.println ("Multiplikation");

Beim Anlegen eines Objekts von B können beide Methoden sum () und multiply () aufgerufen werden. Wenn der Programmierer die Verwendung der Funktion multiply () einschränken möchte, ist dies folgendermaßen möglich.

public static void main (String [] args)

Ein obj = neues B ();

obj.sum ();

Ein obj = neues B (); wird ein Objekt erstellen. Es ist vom Typ A und der Speicher ist als B zugewiesen. Es ist möglich, sum () aufzurufen, aber es kann nicht multiply () ausgeführt werden. Diese Einschränkung erfolgt über Schnittstellen.

Was sind die Ähnlichkeiten zwischen Vererbung und Schnittstelle in Java??

  • Beide Konzepte beziehen sich auf die objektorientierte Programmierung
  • Beide repräsentieren eine IS-A-Beziehung.

Was ist der Unterschied zwischen Vererbung und Schnittstelle in Java??

Vererbung vs. Schnittstelle in Java

Vererbung ist ein OOP-Konzept, um aus den vorhandenen Klassen neue Klassen abzuleiten. Schnittstelle ist ein Mechanismus in OOP, um Abstraktion und Mehrfachvererbung zu implementieren.
Verwendungszweck
Vererbung ermöglicht die Wiederverwendbarkeit von Code. Schnittstellen bieten Abstraktion und Mehrfachvererbung.

Zusammenfassung - Vererbung vs Schnittstelle in Java

Java ist eine Multi-Paradigma-Programmiersprache, die die objektorientierte Programmierung unterstützt. Vererbung und Schnittstellen beziehen sich auf die objektorientierte Programmierung. Der Unterschied zwischen Vererbung und Schnittstelle besteht darin, dass durch Vererbung neue Klassen von vorhandenen Klassen und Schnittstellen abgeleitet werden sollen, um abstrakte Klassen und Mehrfachvererbung zu implementieren.

Laden Sie die PDF-Version von Inheritance vs Interface in Java herunter

Sie können die PDF-Version dieses Artikels herunterladen und gemäß dem Zitiervermerk für Offline-Zwecke verwenden. Laden Sie die PDF-Version hier herunter. Unterschied zwischen Vererbung und Schnittstelle in Java

Referenz:

1.Point, Tutorials. "Java-Vererbung"., Tutorials Point, 31. Oktober 2017. Hier verfügbar 
2.Point, Tutorials. "Java-Schnittstellen" , Tutorials Punkt, 31. Oktober 2017. Hier verfügbar 

Bildhöflichkeit:

1.'CPT-OOP-Vererbungsfahrräder 'Von Pluke - Eigene Arbeit, (Public Domain) via Commons Wikimedia