C# orientado a objetos

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

C#
Ejecutar código →
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");
    }
}
Resultado de la ejecución
Email: Build complete

Practica con el depurador

Pon un punto de interrupción en una asignación o condición importante, pulsa Debug y revisa los valores locales antes de pasar a la siguiente línea.

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