Es sieht aus wie eine abstrakte Klassenschnittstelle, aber für Anfänger ist OOP etwas verwirrt. Zusammenfassend ist die abstrakte Klasse natürlich nur eine Schnittstelle ohne Implementierung, aber sie weist einen angemessenen Anteil an Unterschieden auf. Obwohl die abstrakte Klasse teilweise oder vollständig ausgeführt werden kann, muss die Schnittstelle vollständig sein. Der wichtigste Unterschied zwischen ihnen besteht darin, dass die abstrakte Klasse normal ausgeführt werden kann, während die Schnittstelle nur eine Beschreibung der Methoden ist, an denen die Memberdeklaration beteiligt ist. Schauen wir uns die theoretischen Aspekte von beiden genauer an.

Was ist eine Zusammenfassungsklasse?

Die abstrakte Klasse ist ein spezieller Klassentyp, der die Grundlage für andere Klassen bildet und nicht verschoben werden kann. Die Logik zum Implementieren einer abstrakten Klasse wird durch ihre abgeleiteten Klassen bereitgestellt. Um die Klasse abstrakt zu machen, wird ein Modifikator "abstrakt" verwendet. Dies bedeutet, dass einige fehlende Anforderungen in der darauf folgenden Klasse erfüllt sein müssen. Es umfasst sowohl abstrakte als auch nicht abstrakte Mitglieder. Die abstrakte Klasse bietet grundlegende Funktionen, die dann von mehreren abgeleiteten Klassen ausgetauscht und abgebrochen werden können. Es ist nützlich, das Kopieren von Codes zu vermeiden. Sie sind Schnittstellen sehr ähnlich, verfügen jedoch über zusätzliche Funktionen.

Unterschied zwischen abstrakter Klasse und Schnittstelle in C #.

Was ist eine Schnittstelle?

Die Schnittstelle ist wiederum nicht nur eine Klasse, die funktionale Signaturen enthält. Dies ist eine unerfüllte Angewohnheit. Im Allgemeinen ist dies nur eine Beschreibung der Methoden, die die Deklaration der Mitglieder beinhalten. Es ist eine leere Hülle, ohne die Implementierung ihrer Mitglieder. Es ist wie eine abstrakte Basisklasse, enthält jedoch nur abstrakte Elemente wie Methoden, Ereignisse, Indizes, Features und mehr. Darüber hinaus können mehrere Schnittstellen von einer Klasse implementiert werden, aber nur eine Klasse kann nur eine Klasse erben.

Abstrakte Klasse und Schnittstelle: Der Unterschied zwischen der abstrakten Klasse und der Schnittstelle in C #.

  1. Mehrfachvererbung - Eine Klasse kann nur eine abstrakte Klasse verwenden, sodass eine Mehrfachvererbung nicht möglich ist. Die Schnittstelle kann wiederum mehrere Vererbungen unterstützen, was bedeutet, dass die Klasse eine beliebige Anzahl von Vererbungen haben kann. Abstrakte Klassen- und Schnittstellendefinition in C # - Eine abstrakte Klasse ist ein Klassentyp, der eine Spezifikation enthalten kann, die nicht speziell implementiert wurde. Die Implementierungslogik wird von den abgeleiteten Klassen unterstützt. Es kann sowohl abstrakte als auch nicht abstrakte Methoden haben. Die Schnittstelle wiederum ist nur ein Muster, das nichts bewirken kann. Technisch gesehen ist es nur eine leere Hülle. Implementierung - Eine abstrakte Klasse kann sowohl die Definition als auch deren Implementierung enthalten. Diese Klasse ist unvollständig und kann nicht installiert werden. Die Schnittstelle kann nur eine Signatur einer Funktionalität ohne Code sein. Zugriffsmodifikatoren - Die abstrakte Klasse verfügt möglicherweise über mehrere Eingabemodifikatoren, z. B. Sub, Funktionen, Features usw., jedoch sind Schnittstellenzugriffsmodifikatoren nicht zulässig, und alle Methoden müssen explizit angegeben werden. Homogenität - Die abstrakte Klasse wird verwendet, um denselben Typ, dasselbe Verhalten und denselben Status zu implementieren, während die Schnittstelle nur für Anwendungen vorgesehen ist, die Methodensignaturen gemeinsam nutzen. Deklaration - Die abstrakte Klasse fungiert als Basisklasse für alle anderen Klassen, sodass sie jede Variable deklarieren oder verwenden kann, sodass keine Variablen in der Schnittstelle deklariert werden dürfen. Konstruktordeklaration - Eine abstrakte Klasse kann eine Konstruktordeklaration haben, während die Schnittstelle keine Konstruktordeklaration haben kann. Primär und Peripherie - Die abstrakte Klasse dient zur Identifizierung der Klassenkennung und kann für Objekte desselben Datentyps verwendet werden. Die Schnittstelle wird wiederum verwendet, um die periphere Fähigkeit einer Klasse zu bestimmen. Hervorragend und Hintergrund - Zumindest aus Sicht eines Programmierers ist die abstrakte Klasse funktionaler und die Benutzeroberfläche enger.

Zusammenfassungsklasse und Schnittstelle: Tabellenform

Zusammenfassung

Was ist der Unterschied zwischen einer abstrakten Klasse und einer Schnittstelle? Dies ist wahrscheinlich eine der häufigsten Fragen, die in einem technischen Interview gestellt werden. In jedem C # -Tutorial finden Sie viele Informationen zu abstrakten Klassen und Schnittstellen, aber der Unterschied zwischen ihnen ist ein sehr schwieriger Teil. Sie können alle Informationen kombinieren, die Sie finden und von denen Sie immer noch nicht genug bekommen können. Nun, konzeptionell sind beide die wichtigsten Begriffe in der Programmierung und sie sind gleich, aber sie unterscheiden sich stark in der Funktionalität. Während die abstrakte Klasse ein spezieller Klassentyp ist, der als Grundlage für andere Klassen dient, ist die Schnittstelle andererseits nur eine leere Shell mit Mitgliederdeklarationen.

Referenzen

  • Freiheit, Jessie. C # lernen. Sebastopol: Reeilly Media, 2002. Drucken
  • Freiheit, Jessie. C # lernen. Sebastopol: Reeilly Media, 2002. Drucken
  • Lavin, Peter. Objektorientiertes PHP: Konzepte, Methoden und Code. San Francisco: Keine Stärkepresse, 2006 Drucken
  • Stellman, Andrew und Jennifer Green. Der Beginn des ersten C #. Kolkata: Shroff Publishers and Distributors, 2008. Drucken
  • "Bildnachweis: https://stackoverflow.com/questions/2570814/when-to-use-abstract-classes"