Announcement

Collapse
No announcement yet.

Suche ein sinnvolles Beispiel für den Einsatz von Schnittstellen anstatt der Vererbung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Suche ein sinnvolles Beispiel für den Einsatz von Schnittstellen anstatt der Vererbung

    Hallo,

    in C# gibt es neben der Vererbung von Basisklassen auch <BR>
    die Möglichkeit Schnittstellen mit Interface zu deklarieren und<BR>
    deren Methoden in einer Klasse zu implementieren.<BR>
    Es werden in der Hilfe zwar Beispiele gezeigt,<BR>
    der praktische Nutzen dieser Sache
    mir dennoch nicht richtig verständlich.<BR>
    Hat jemand ein einfaches Beispiel (mit Code),<BR>
    bei dem
    man die normale Vererbung nicht einsetzen sollte und dafür die Schnittstelle.<BR>

    Vielen Dank <BR>
    Ulli

  • #2
    Hallo,

    die Darstellung aller Vorteile eines Interfaces wäre eine sehr umfangreiche Sache, daher belasse ich es bei einem Beispiel aus ADO.NET: Das Interface <b>System.Data.IDbConnection</b> wird sowohl von der Klasse <i>System.Data.OleDb.OleDbConnection</i> als auch von der Klasse <i>System.Data.SqlClient.SqlConnection</i> (bzw. auch den anderen Providern) implementiert. Ein Programm kann nun direkt über diesen Interface-Typ die Methoden der jeweiligen Klasse aufrufen, ohne dass es eine Rolle spielt, um welche konkrete Klasse (Instanz) es sich handelt (solange diese Klasse dieses Interface implementiert). Dieser Zugriffsweg funktioniert sogar dann noch, wenn ein völlig anderen Hersteller der Klasse ins Spiel kommt (siehe Borland C#Builder: <i>Borland.Data.Provider.BdpConnection</i>).

    Interfaces werden gern auch dazu verwendet, um <br>
    a) die Funktionalität einer Mehrfachvererbung umzusetzen, und <br>
    b) um Methoden einer Klasse zu "verstecken" aber trotzdem von außen aufrufen zu können (d.h. diese sind nur dann sichtbar, wenn der Zugriff über den Interface-Typ erfolgt, aber nicht über den Klassen-Typ)

    Comment


    • #3
      Hallo Herr Kosch, <BR>
      vielen Dank für die Antwort. Das Thema scheint wirklich <BR>
      sehr komplex zu sein. Nun habe ich Ansatzpunkte, <BR>
      wo ich weiterforschen kann.<BR><BR>

      Mit freundlichen Grüßen<BR>

      Ulli Richte

      Comment

      Working...
      X