🎯 Objetivo: Dominadas as Classes Abstratas, vamos dar um passo adiante com as Interfaces. Elas são um conceito fundamental na Programação Orientada a Objetos em C# e nos permitem definir "contratos" de comportamento que as classes devem seguir, garantindo um design de software ainda mais flexível e desacoplado.


🤔 O Que São Interfaces?

Imagine que você está em um restaurante. O menu é como um contrato. Ele diz o que o restaurante (a classe) pode "fazer" (os métodos) para você, como "servir prato principal", "servir sobremesa", "fazer a conta". O menu não diz como o chef vai preparar o prato ou como a conta será calculada, apenas que essas ações estão disponíveis.

Uma Interface em C# é exatamente isso: um contrato 100% abstrato. Ela define um conjunto de métodos que uma classe deve implementar. Uma interface não pode ter nenhuma implementação de método (tradicionalmente). Ela apenas declara "o quê" uma classe deve fazer, mas nunca "como" ela deve fazer.

Ponto Chave: Interfaces não possuem atributos (a não ser constantes static), nem construtores e, tradicionalmente, não possuem métodos concretos. Elas são puramente sobre comportamento.


❓Por Que Usar Interfaces? ❓

Motivos:


🗜️ Componentes de uma Interface

Uma interface pode conter:


🧪 Exemplo Prático: Animais que Podem Voar 🧪

Vamos pensar em animais. Alguns podem voar, outros não. Um Pato e um Avião podem ter o comportamento de "voar". Um Pinguim não voa. A capacidade de voar é um comportamento que pode ser aplicado a diferentes tipos de objetos, e é um caso perfeito para uma interface.

// Declaração de uma Interface
public interface IVoador // Note a palavra-chave 'interface'
{
    // Método: Define o comportamento de voar
    // É implicitamente public void Voar();
    void Voar();

    // Outro método: Define a altura máxima de voo
    double GetAlturaMaximaVoo();

    // Exemplo de constante em uma interface
    // Por padrão é public static readonly
    const string TIPO_VOO = "Atmosférico";
}

Neste exemplo:

Implementando Interfaces: Dando Vida ao Contrato