Entendendo Interfaces em C#: Definição, Exemplo e Uso Prático
O que é uma Interface em C#?
Uma interface em C# é um contrato que define um conjunto de membros — métodos, propriedades, eventos ou indexadores — que uma classe ou struct deve implementar. Especifica o o quê mas não o como, permitindo que diferentes tipos exponham o mesmo conjunto de operações enquanto mantêm detalhes de implementação ocultos.
Interfaces promovem acoplamento fraco, permitem polimorfismo e suportam herança múltipla de definições de tipo, essencial para escrever código testável e manutenível.
Exemplo Concreto
Abaixo está um programa console mínimo que demonstra como uma interface é declarada, implementada e usada.
using System;
namespace DemoApplication {
// 1. Declarar o contrato
interface IGuru99Interface {
void SetTutorial(int id, string name);
string GetTutorial();
}
// 2. Implementar o contrato
class Guru99Tutorial : IGuru99Interface {
private int tutorialId;
private string tutorialName;
public void SetTutorial(int id, string name) {
tutorialId = id;
tutorialName = name;
}
public string GetTutorial() => tutorialName;
static void Main(string[] args) {
var tutor = new Guru99Tutorial();
tutor.SetTutorial(1, ".Net by Guru99");
Console.WriteLine(tutor.GetTutorial());
Console.ReadKey();
}
}
}

Principais conclusões:
- Interfaces são declaradas com a palavra-chave
interface. - Contêm apenas assinaturas; a implementação é fornecida pela classe.
- Uma classe que implementa uma interface deve definir todos os seus membros, garantindo conformidade com o contrato.
Por que Usar Interfaces?
- Abstração – Separa o "o quê" do "como".
- Polimorfismo – Trata diferentes implementações uniformemente.
- Testabilidade – Troca implementações reais por mocks ou stubs em testes de unidade.
Resumo
Uma interface especifica as operações que um tipo deve suportar. Ao implementar uma interface, uma classe garante aderência a esse contrato, facilitando arquitetura limpa e design escalável.
Linguagem C
- Aproveitando Dados na Internet da Confiabilidade: Estratégias para Gestão Eficaz
- Operadores em C++ Explicados: Tipos, Exemplos e Programas Práticos
- Laços For em C++ Explicados: Sintaxe, Fluxo e Exemplos Práticos
- Dominando std::stack em C++: Guia Completo com Exemplos Práticos
- Structs em C++ Explicadas com Exemplo Prático
- Dominando std::list em C++: Sintaxe, Funções e Exemplos Práticos
- C++ Struct vs Class: Diferenças Principais, Sintaxe e Melhores Casos de Uso
- Classes Abstratas em C#: Tutorial Prático com Exemplos de Código
- Interface vs Classe Abstrata em Java: Como Escolher a Abstração Certa
- Entendendo Interfaces em Java: Definições, Usos e Boas Práticas