C# orienté objet

Interfaces et abstraction en C#

Dans cette leçon, vous allez définir une interface qui décrit une capacité d'un objet et l'implémenter dans une classe.

Introduction

Une interface décrit ce qu'un objet sait faire, par exemple envoyer des notifications, sans fixer la manière dont il stocke ses données ni ce dont il hérite. Plusieurs classes sans lien entre elles peuvent implémenter la même interface. Par convention, le nom d'une interface en C# commence par la lettre I.

L'interface INotifier déclare seulement la méthode Send. La classe EmailNotifier implémente cette interface en affichant la notification par e-mail. La variable notifier a le type INotifier, le code utilisateur ne dépend donc pas du mode d'envoi. Pour ajouter un canal SMS ou Slack, il suffit de créer une nouvelle classe qui implémente INotifier.

Exemple C# exécutable

C#
Exécuter le code →
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");
    }
}
Résultat de l’exécution
Email: Build complete

S'entraîner avec le débogueur

Placez un point d'arrêt sur une affectation ou une condition importante, cliquez sur Debug et inspectez les valeurs locales avant de passer à la ligne suivante.

S'entraîner avec un défi

Utilisez le contenu de cette leçon pour résoudre un vrai problème. Chaque défi s'exécute dans le navigateur, avec des tests instantanés et une revue par l'IA.

Tous les défis