freeCodeCamp/guide/portuguese/csharp/interface/index.md

59 lines
1.7 KiB
Markdown

---
title: Interface
localeTitle: Interface
---
* * *
Uma interface é semelhante a uma classe ou estrutura, mas sem implementação para seus membros. Uma interface declara um contrato ou um comportamento que as classes de implementação devem ter. Pode declarar apenas propriedades, métodos e eventos com modificadores de acesso NO.
Todos os membros declarados devem ser implementados na classe inharit, caso contrário, haverá um erro de compilação. como uma convenção, marcaremos a interface com a letra I no início (IMyInterface || IUserOptions). Você define uma interface usando a palavra-chave da interface.
Todos os membros de uma interface são: implicitamente abstrato, implicitamente público, não pode declarar um modificador de acesso como protected, internal private etc ...
Uma interface pode:
* Herdar de outras interfaces.
* Herdar de várias interfaces ao mesmo tempo
* Contém apenas métodos, propriedades, eventos e indexadores.
Uma interface não pode:
* Herdar de uma turma.
* Tem implementação.
* Tem modificadores de acesso que não sejam públicos.
## \* Seja instanciado.
O uso de interfaces nos permite alterar nossa implementação em nosso projeto sem quebrar outras partes, e só tem que mudar o único lugar onde o objeto é criado.
Exemplo de interface:
```csharp
public Interface IUserFavoriteFood
{
void AddFood();
Task<User> EatFavoriteFood(int id);
}
```
* * *
Herança e implementação de interfaces:
```csharp
public class UserHungry : IUserFavoriteFood
{
public AddFood()
{
// Implementation:
// A method to add food.
}
public Task<User> EatFavoriteFood(int id)
{
// Implementation:
// A method to Eat food by id.
}
}
```