Interfaces e abstração em C#
Nesta lição, você vai definir uma interface que descreve uma capacidade de um objeto e implementá-la em uma classe.
Introdução
Uma interface descreve o que um objeto sabe fazer, por exemplo enviar notificações, sem definir como ele guarda os dados nem de quem ele herda. Várias classes sem relação entre si podem implementar a mesma interface. Por convenção, os nomes de interfaces em C# começam com a letra I.
A interface INotifier só declara o método Send. A classe EmailNotifier implementa essa interface imprimindo a notificação por e-mail. A variável notifier tem o tipo INotifier, então o código que a usa não depende da forma de envio. Para adicionar um canal de SMS ou Slack, basta criar uma nova classe que implemente INotifier.
Exemplo de C# executável
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 completePratique com o depurador
Pratique com um desafio
Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.
Todos os desafios