C# orientado a objetos

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

C#
Rodar 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 da execução
Email: Build complete

Pratique com o depurador

Coloque um breakpoint em uma atribuição ou condição importante, clique em Debug e veja os valores das variáveis locais antes de passar para a próxima linha.

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