Die abstrakte Klasse und die Schnittstelle werden hauptsächlich für die Abstraktion verwendet, sind jedoch sehr unterschiedlich. Beide sind grundlegende Java-Komponenten, verwenden jedoch ihre eigene Software. Beide Begriffe können synonym sein, aber nicht austauschbar.

Es gibt signifikante Unterschiede zwischen den beiden. Wenn die Schnittstellenmethode standardmäßig abstrakt ist, kann abstract sowohl abstrakte als auch abstrakte Methoden enthalten. Seit Java 8 sind die Schnittstellen auch methodische Richtlinien und können in Java sowohl statische als auch Standardmethoden haben. Schauen wir sie uns genauer an.

Der Unterschied zwischen der vorhandenen abstrakten Klasse und der Java-Schnittstelle

Was ist eine abstrakte Klasse in Java?

In Java ist die abstrakte Klasse eine Klasse, die als abstrakt deklariert wurde - sie kann abstrakte Methoden haben oder nicht. Dies ist der Java-Schnittstelle sehr ähnlich, da sie möglicherweise die Standardausführung enthält. Wie die objektorientierte Programmierung werden Abstraktionen in Java über abstrakte Klassen und Schnittstellen implementiert. In Java bedeutet Abstraktion, unbedeutende Details vor dem Benutzer zu verbergen, die Komplexität zu minimieren und sich nur auf kritische Details zu konzentrieren, um die Effizienz zu verbessern. Das Schlüsselwort "Abstract" wird in der Klassendeklaration verwendet, um eine abstrakte Klasse vor dem Schlüsselwort class zu erstellen.

Die Zusammenfassungsklasse kann abstrakte Methoden (Nicht-Body-Methoden) haben oder nicht, aber wenn es mindestens eine Abstraktionsmethode gibt, sollte sie als abstrakt deklariert werden. Die abstrakten Methoden können jedoch nur in der abstrakten Klasse verwendet werden, jedoch nur für das Standardverhalten. Zusammenfassungsmethoden können je nach Ansichtsebene Eingabemodifikatoren enthalten, z. B. persönlich, öffentlich, statisch und geschützt. Die Abschlussklasse kann nicht erstellt werden und bietet keine 100% ige Abstraktion, da sie möglicherweise eine bestimmte Methode hat.

Was ist eine Schnittstelle?

Obwohl die Schnittstelle wie eine Klasse aussieht, ist dies nicht der Fall. Da Java keine Mehrfachvererbungen unterstützt, ist die Schnittstelle manchmal gut geeignet, um die Grundlage für eine Klassenhierarchie zu schaffen. Interface ist ein Klassenplan, mit dem eine Abstraktion in Java erreicht wird. Es enthält abstrakte Methoden und statische Konstanten. Einfach ausgedrückt ist die Schnittstelle eine Reihe abstrakter Methoden, mit denen das Verhalten einer Klasse definiert wird. Im Gegensatz zur aktuellen Klasse bietet die Schnittstelle in Java vollständige Abstraktheit. Es kann sowohl Methoden als auch Variablen wie die Klasse haben, aber die an der Schnittstelle deklarierten Methoden sind abstrakt.

Der Unterschied zwischen der vorhandenen abstrakten Klasse und der Java-Schnittstelle

  1. In Java sind die abstrakte Klasse und die Schnittstelle "Mehrfachvererbung" - Obwohl die abstrakte Klasse und die Schnittstelle hauptsächlich für die Abstraktion verwendet werden, unterscheiden sie sich erheblich voneinander. Obwohl eine abstrakte Klasse eine Klasse ist, ist eine Schnittstelle eine Schnittstelle. Dies bedeutet, dass die Schnittstelle nur auf eine andere Java-Schnittstelle erweitert werden kann, während die abstrakte Klasse mehrere Vererbungen in Java ausführen kann. Nun, Java unterstützt keine Mehrfachvererbung, aber Java kann mehrere Vererbungen haben. Abstrakte Klasse in Java und "Methodentyp" der Schnittstelle - Die beiden Hauptunterschiede bestehen darin, dass die Schnittstelle nur abstrakte Methoden haben kann und die abstrakte Klasse sowohl abstrakte als auch nicht abstrakte Methoden haben kann. Seit Java 8 kann die Schnittstelle jedoch sowohl über Standard- als auch über statische Methoden verfügen. In Java haben die abstrakte Klasse und die Schnittstelle "Eingabemodifikatoren" - die abstrakte Klasse kann offene, persönliche und geschützte Zugriffsmodifikatoren haben, aber die Schnittstellenmethoden sind offen und abstrakt. Sie können mit den Schnittstellenmethoden keinen anderen Eingabemodifikator verwenden. In Java "implementieren" Sie die abstrakte Klasse und die Schnittstelle - die abstrakte Klasse stellt die Implementierung der Schnittstelle bereit. Die Schnittstelle kann wiederum keine abstrakte Klassenimplementierung bereitstellen. In Java werden die abstrakte Klasse und das "Schlüsselwort" der Schnittstelle verwendet, um den abstrakten Klassenstil als abstrakt zu deklarieren. Die Schnittstellen sind jedoch eine ganz andere Geschichte. Sie können nur eine Masse, statische Endstabilität und Methodendeklaration haben. In Java abstrakte Klasse und "Verwendung" der Schnittstelle - obwohl die Schnittstelle ideal zum Deklarieren von Typen ist, eignet sich abstrakte Klasse am besten für die Wiederverwendung und Entwicklung von Code. Die Schnittstelle ist wie eine Klasse, aber keine Klasse. In Java ist die "Zuverlässigkeit" der abstrakten Klasse und der Schnittstelle ein weiterer wichtiger Unterschied zwischen der abstrakten Klasse und der Schnittstelle. Letztere ist etwas schneller als die erste, da in Java die Suche normalerweise mit der Schnittstelle durchgeführt wird, bevor eine abgebrochene Methode aufgerufen wird. 'ist verbunden. Javascript-Klasse abstrakte Klasse und Schnittstelle "Endvariablen" - In der Schnittstelle deklarierte Variablen sind standardmäßig endgültig, während die abstrakte Klasse möglicherweise nicht endgültige Variablen enthält oder nicht.

Abstrakte Klasse und Java-Schnittstelle: Eine Vergleichstabelle

Zusammenfassung der abstrakten Klasse und Schnittstelle in Java

Sowohl die abstrakte Klasse als auch die Schnittstelle werden für die Zusammenfassung verwendet. Sie weisen jedoch einen angemessenen Anteil an Unterschieden auf. Der Hauptunterschied zwischen ihnen hängt mit den Abstraktionsmethoden zusammen. Die erste kann abstrakte Methoden haben oder nicht, und die zweite ist eindeutig abstrakt. Die abstrakte Klasse kann sowohl abstrakte als auch nicht abstrakte Methoden haben. Die Schnittstelle kann wiederum nur abstrakte Methoden haben, so dass sie nicht implementiert werden können, was bedeutet, dass die Schnittstelle einfach keine nicht abstrakten Methoden haben kann. Es gibt keine abstrakte Klasse, die das Erstellen von Themen verbietet. Die Schnittstelle kann wiederum wie eine Klasse aussehen, aber nicht.

Referenzen

  • Bloch, Joshua. Java Programming Language Guide. Boston: Addison-Wesley, 2001. Drucken
  • Bloch, Joshua. Java-Programmiersprachenhandbuch. Boston: Addison-Wesley, 2001. Drucken
  • Flanagan, David. Also Java. Sebastopol: MeasurementReilly Media, 1996. Drucken
  • Ekkel. In Java denken. Delhi: Pearson Education India, 2006. Drucken
  • "Bildnachweis: https://stackoverflow.com/questions/1913098/what-is-the-difference-between-an-interface-and-abstract-class"