Interfacce e astrazione in C#
In questa lezione definirai un'interfaccia che descrive una capacità di un oggetto e la implementerai in una classe.
Introduzione
Un'interfaccia descrive cosa sa fare un oggetto, per esempio inviare notifiche, senza stabilire come memorizza i dati né da chi eredita. Più classi senza alcun legame tra loro possono implementare la stessa interfaccia. Per convenzione, in C# i nomi delle interfacce iniziano con la lettera I.
L'interfaccia INotifier dichiara solo il metodo Send. La classe EmailNotifier implementa l'interfaccia stampando la notifica via email. La variabile notifier ha il tipo INotifier, quindi il codice che la usa non dipende dal modo di invio. Per aggiungere un canale SMS o Slack basta creare una nuova classe che implementi INotifier.
Esempio C# eseguibile
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 completeEsercitati con il debugger
Esercitati con una sfida
Usa ciò che questa lezione spiega per risolvere un problema reale. Ogni sfida gira nel browser, con test immediati e una revisione dell'IA.
Tutte le sfide