C# Interfaces

Interfaces kann man als Vertrag verstehen, den eine Klasse, die von diesem Interface erbt, erfüllen muss. D.h., dass das Interface die Struktur einer Klasse vorgibt.

Folgende Elemente können in einem Interface vorgeschrieben werden:

  • Methoden
  • Eigenschaften
  • Ereignisse (Events)
  • Indexer

Bsp. für die Definition eines Interfaces:

interface ITier { 

  // Properties 
  string Gender {get; set;} 
  int Age {get; set;}

  // Methods 
  void eat(); 
  void drink();
}

Innerhalb eines Interfaces werden keine Zugriffs-Modifizierer gesetzt. Das erfolgt erst bei der Implementierung in der davon abgeleiteten Klasse. Auch die Funktionen besitzen noch keinen Code, sondern sind nur Platzhalter für die Funktionen, die in der abgeleiteten Klasse implementiert werden müssen.

Zur besseren Identifikation beginnt der Name eines Interfaces immer mit einem großen I.

Neben dem Effekt, dass man mit Interfaces die Gestalt von Klassen vorgeben kann, kann man sie auch nutzen, um Klassen zusammen zu fassen.

So lässt sich z.B. ein Array vom Typ Interface erstellen, das als Elemente Objekte beinhaltet, deren Klassen das entsprechende Interface implementieren.