Interfaces y abstracción en C#
En esta lección vas a definir una interfaz que describe una capacidad de un objeto y a implementarla en una clase.
Introducción
Una interfaz describe lo que un objeto sabe hacer, por ejemplo enviar notificaciones, sin fijar cómo guarda sus datos ni de qué hereda. Varias clases sin relación entre sí pueden implementar la misma interfaz. Por convención, el nombre de una interfaz en C# empieza por la letra I.
La interfaz INotifier solo declara el método Send. La clase EmailNotifier implementa esa interfaz mostrando la notificación por correo. La variable notifier tiene el tipo INotifier, así que el código que la usa no depende de la forma de envío. Para añadir un canal SMS o Slack, basta con crear una clase nueva que implemente INotifier.
Ejemplo de C# ejecutable
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 completePractica con el depurador
Practica con un reto
Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.
Todos los retos