Schnittstellenimplementierung

Definition - Was bedeutet Schnittstellenimplementierung?

Die Schnittstellenimplementierung in C # bezieht sich auf die Vererbung einer Schnittstelle durch eine Struktur oder Klasse, die die Funktionalität für die in der Schnittstelle deklarierten Mitglieder bereitstellt. Die Mitglieder der implementierten Schnittstelle können Methoden, Eigenschaften, Indexer und Ereignisse enthalten.

Im Allgemeinen stellt eine Schnittstelle einen Vertrag dar, der von einer Klasse oder Struktur eingehalten werden muss, die alle in der Schnittstelle angegebenen Mitglieder implementiert. Die Hauptvorteile der Schnittstellenimplementierung umfassen Flexibilität, geringe Kopplung, hohe Kohäsion und polymorphes Verhalten.

In C # ermöglicht die Schnittstellenimplementierung, dass eine Klasse von mehreren Schnittstellen anstelle von mehreren Klassen erbt, sodass mehr als ein Verhalten über mehrere Schnittstellen vererbt werden kann, die nur Methodensignaturen gemeinsam nutzen. Die Schnittstelle kann als Eigenschaft implementiert werden, um anzugeben, ob die Eigenschaft schreibgeschützt, schreibgeschützt oder schreibgeschützt ist. Eine Schnittstelle kann explizit implementiert werden, um ein Mitglied auszublenden und durch ein anderes zu ersetzen. Anders als in Java ermöglicht die explizite Schnittstellenimplementierung von C #, dass mehrere Schnittstellen mit demselben Methodennamen und denselben Signaturen unterschiedliche Implementierungen ohne Namenskonflikte aufweisen und unterschiedliche Ergebnisse basierend auf der aktuellen Besetzung des Objekts liefern.

Technische.me erklärt die Implementierung der Schnittstelle

Ähnlich wie bei einer abstrakten Klasse bietet eine Schnittstelle keine Standardimplementierung. Ein Mitglied einer Klasse oder Struktur, die ein Mitglied einer Schnittstelle implementiert, muss öffentlich und nicht statisch sein und denselben Namen und dieselbe Signatur wie die Schnittstelle besitzen.

Beispielsweise kann ein Schnittstellen-IAccount von einer Klasse, SavingAccount, implementiert werden, die die Mitglieder von IAccount implementiert, die BalanceAmount, DateOfOpening usw. als Eigenschaften und Methoden wie PrintStatement, CalculateInterest usw. enthalten können.

Die Schnittstellenimplementierung kann implizit sein, wenn eine Basisklasse einer abgeleiteten Klasse die Schnittstelle bereits implementiert. Alle Basisschnittstellen müssen nicht explizit in der Basisklassenliste der abgeleiteten Klasse angegeben werden. Darüber hinaus kann die abgeleitete Klasse das Schnittstellenverhalten ändern, das bereits in der Basisklasse definiert wurde, indem die virtuellen Elemente in der abgeleiteten Klasse überschrieben werden.

Die Schnittstellenimplementierung ist explizit, wenn Mitglieder von zwei oder mehr Schnittstellen mit demselben Namen und derselben Signatur, die jedoch zwei verschiedene Funktionen ausführen, von einer Klasse oder Struktur geerbt werden, die jedes Mitglied explizit implementiert. Ein solches Mitglied wird mit dem Namen der Schnittstelle und einem Punkt benannt und kann nur über eine Instanz der Schnittstelle aufgerufen werden. Im Gegensatz zu impliziten Methoden können explizite Methoden nicht abstrakt oder virtuell sein.

Diese Definition wurde im Kontext von C # geschrieben