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
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");
}
}
Email: Build completeS'entraîner avec le débogueur
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