Introdução às interfaces
Aprenda como as interfaces definem contratos para classes e aumentam a flexibilidade do código
Introdução às interfaces é uma aula grátis de C# Academy no CoddyKit. Esta é a aula 1 de 6. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C# Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C# Academy inclui 6 aulas no total.
Introdução às interfaces
Introdução às interfaces
Bem-vindo à primeira lição de Conceitos avançados de programação! Nesta lição, você aprenderá sobre interfaces, sua finalidade e como usá-las para obter abstração e flexibilidade em seus programas C#. Vamos começar!

O que é uma interface?
O que é uma interface?
Uma interface é um contrato que define um conjunto de métodos e propriedades que uma classe deve implementar. Ela própria não fornece uma implementação, mas garante que qualquer classe que a implemente siga um projeto específico.
Exemplo: Uma interface para um “Vehicle” poderia definir métodos como Start() e Stop(), que todos os veículos devem implementar.
Ponto-chave: As interfaces permitem criar código flexível e reutilizável ao separar o comportamento da implementação.
Definindo uma interface
Definindo uma interface
Para definir uma interface em C#, use a palavra-chave interface. Exemplo:
Dica: Por convenção, os nomes de interfaces em C# começam com a letra I.
using System;
interface IVehicle {
void Start();
void Stop();
}
Implementando uma interface
Implementando uma interface
Para implementar uma interface, uma classe deve definir todos os métodos e propriedades declarados na interface. Exemplo:
Ponto-chave: Uma classe pode implementar várias interfaces para oferecer vários comportamentos.
using System;
interface IVehicle {
void Start();
void Stop();
}
class Car : IVehicle {
public void Start() {
Console.WriteLine("Car is starting.");
}
public void Stop() {
Console.WriteLine("Car is stopping.");
}
}
class Program {
static void Main() {
IVehicle myCar = new Car();
myCar.Start();
myCar.Stop();
}
}
Por que usar interfaces?
Por que usar interfaces?
As interfaces oferecem várias vantagens:
- Abstração: Definir o comportamento sem especificar a implementação.
- Flexibilidade: Uma classe pode implementar várias interfaces, permitindo que desempenhe várias funções.
- Consistência: Impor uma estrutura comum entre classes relacionadas.
Dica: Use interfaces quando quiser definir um contrato compartilhado sem determinar como ele deve ser cumprido.
Combinando várias interfaces
Combinando várias interfaces
Uma classe pode implementar várias interfaces para combinar diferentes conjuntos de comportamentos. Exemplo:
using System;
interface IVehicle {
void Start();
void Stop();
}
interface IRadio {
void PlayMusic();
}
class Car : IVehicle, IRadio {
public void Start() {
Console.WriteLine("Car is starting.");
}
public void Stop() {
Console.WriteLine("Car is stopping.");
}
public void PlayMusic() {
Console.WriteLine("Playing music.");
}
}
class Program {
static void Main() {
Car myCar = new Car();
myCar.Start();
myCar.PlayMusic();
myCar.Stop();
}
}
Desafio prático
Desafio prático
Crie uma interface IShape com um método CalculateArea(). Implemente essa interface nas classes Rectangle e Circle. Exemplo:
using System;
interface IShape {
double CalculateArea();
}
class Rectangle : IShape {
public double Width { get; set; }
public double Height { get; set; }
public double CalculateArea() {
return Width * Height;
}
}
class Circle : IShape {
public double Radius { get; set; }
public double CalculateArea() {
return Math.PI * Radius * Radius;
}
}
class Program {
static void Main() {
IShape rectangle = new Rectangle { Width = 5, Height = 4 };
IShape circle = new Circle { Radius = 3 };
Console.WriteLine("Rectangle Area: " + rectangle.CalculateArea());
Console.WriteLine("Circle Area: " + circle.CalculateArea());
}
}
Melhores práticas para usar interfaces
Melhores práticas para usar interfaces
Veja algumas práticas recomendadas:
- Use interfaces para definir contratos que as classes devem seguir.
- Prefira interfaces à herança para classes não relacionadas que compartilham um comportamento comum.
- Mantenha as interfaces focadas e evite incluir métodos ou propriedades desnecessários.
Dica: As interfaces devem descrever o que uma classe faz, não como ela faz isso.
Muito bem!
Muito bem!
Parabéns! Você aprendeu os fundamentos das interfaces e como usá-las para obter abstração e flexibilidade em seus programas. Na próxima lição, vamos explorar as classes abstratas e aprender como elas diferem das interfaces. Continue programando!

Perguntas Frequentes
A aula “Introdução às interfaces” é grátis?
Sim — o texto completo de “Introdução às interfaces” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C# Academy, atualize para CoddyKit PRO. O curso de C# Academy inclui 6 aulas no total.
O que vou aprender em “Introdução às interfaces”?
Aprenda como as interfaces definem contratos para classes e aumentam a flexibilidade do código Você pratica C# Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar C# Academy?
Nenhuma experiência prévia é necessária. C# Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 6.
Quanto tempo leva a aula “Introdução às interfaces”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de C# Academy?
Sim. Cada aula de C# Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Introdução às interfaces
- Classes abstratas
- Membros e métodos estáticos
- Explorando enumerações e estruturas
- Delegados e eventos
- Trabalhando com coleções: listas, dicionários e filas