Fácil C#

Implementando uma interface simples

Enunciado

Crie uma interface IVeiculo com o método Mover(). Depois, crie a classe Carro que implementa IVeiculo e imprime "Carro em movimento". No Main, instancie um Carro e chame Mover().

Requisitos

  • Declarar a interface IVeiculo com o método Mover().
  • A classe Carro deve implementar IVeiculo.
  • O método Mover() deve imprimir exatamente "Carro em movimento".
  • O programa deve compilar e executar sem erros.

Código inicial

using System;

// TODO: declarar a interface IVeiculo

// TODO: implementar a classe Carro

public class Program
{
    public static void Main()
    {
        // TODO: criar um Carro e chamar Mover()
    }
}

Saída esperada

Carro em movimento
Ver dica

Lembre-se de que a interface define apenas a assinatura do método; a implementação fica na classe.

Mostrar solução
using System;

// Interface que define o contrato
public interface IVeiculo
{
    void Mover();
}

// Classe que implementa a interface
public class Carro : IVeiculo
{
    public void Mover()
    {
        Console.WriteLine("Carro em movimento");
    }
}

public class Program
{
    public static void Main()
    {
        // Instancia e chama o método através da interface
        IVeiculo veiculo = new Carro();
        veiculo.Mover();
    }
}

Passo a passo

  1. Declaramos a interface IVeiculo com o método Mover(). Interfaces não têm implementação (até C# 8, mas aqui não usamos default).
  2. A classe Carro herda de IVeiculo usando : IVeiculo.
  3. Dentro de Carro, implementamos Mover() com a mensagem solicitada.
  4. No Main, criamos uma variável do tipo IVeiculo e atribuímos uma instância de Carro.
  5. Chamamos veiculo.Mover(), que executa a implementação de Carro.

Por que funciona

A interface garante que qualquer classe que a implemente tenha o método Mover(). Isso permite tratar objetos de tipos diferentes de forma uniforme. O polimorfismo entra em ação quando chamamos o método através da referência da interface.

Erros comuns

  • Esquecer de implementar o método na classe: public class Carro : IVeiculo { } gera erro de compilação.
  • Declarar o método sem public: void Mover() na classe não satisfaz a interface (deve ser público).
  • Tentar instanciar a interface: IVeiculo v = new IVeiculo(); não compila.

Outra forma de resolver

Pode-se usar uma classe abstrata, mas interfaces são preferíveis quando se quer contrato sem herança de implementação.

Saída esperada

Carro em movimento