Objektorientiertes C#

Schnittstellen und Abstraktion in C#

In dieser Lektion definierst du eine Schnittstelle, die eine Fähigkeit eines Objekts beschreibt, und implementierst sie in einer Klasse.

Einführung

Eine Schnittstelle (interface) beschreibt, was ein Objekt kann, zum Beispiel Benachrichtigungen verschicken, ohne festzulegen, wie es Daten speichert oder wovon es erbt. Mehrere Klassen, die nichts miteinander zu tun haben, können dieselbe Schnittstelle implementieren. Per Konvention beginnen Schnittstellennamen in C# mit dem Buchstaben I.

Die Schnittstelle INotifier deklariert nur die Methode Send. Die Klasse EmailNotifier implementiert diese Schnittstelle, indem sie die Benachrichtigung per E-Mail ausgibt. Die Variable notifier hat den Typ INotifier, deshalb hängt der verwendende Code nicht von der konkreten Versandart ab. Willst du SMS oder Slack ergänzen, legst du einfach eine neue Klasse an, die INotifier implementiert.

Ausführbares C#-Beispiel

C#
Code ausführen →
Program.cs
using System;

interface INotifier { void Send(string message); }
class EmailNotifier : INotifier { public void Send(string message) => Console.WriteLine($"Email: {message}"); }

class Program
{
    static void Main()
    {
        INotifier notifier = new EmailNotifier();
        notifier.Send("Build complete");
    }
}
Ergebnis der Ausführung
Email: Build complete

Mit dem Debugger üben

Setze einen Haltepunkt auf eine wichtige Zuweisung oder Bedingung, klicke auf Debug und sieh dir die lokalen Werte an, bevor du zur nächsten Zeile gehst.

Mit einer Challenge üben

Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.

Alle Challenges