Interfaces no C#

Uma interface é parecida com uma classe abstrata, a diferença está no fato de que uma classe abstrata pode possuir alguns métodos que não sejam implementados e outros que sejam implementados. Já a interface conta só com a “casquinha” mesmo, ou seja, possui somente métodos que não estão implementados e que devem ser implementados na classe que usar a interface.

Uma pergunta bastante comum para quem está começando a desenvolver é: “Então tá, qual a utilidade e vantagem disso?”. Mesmo dizendo aqui, a verdade é que você provavelmente só mudará sua opinião com a prática mesmo 😀

As interfaces são muito utilizadas para que um projeto tenha bem claro quais são as regras de negócio que devem ser utilizadas. Por exemplo, na minha interface tenho um método “Vender”, que faz parte da realidade do negócio da minha empresa, e deverá ser implementado de acordo com o setor.

Além disso, como o C# não suporta herança múltipla, as interfaces permitem que uma classes estenda múltiplas interfaces, contornando o problema.

Importante: Uma interface no C# não pode conter atributos, somente métodos, propriedades e eventos. Todos os membros de uma interface são públicos e não podem utilizar um modificador de acesso.

A classe que implementar a interface deverá possuir a definição de TODOS os métodos existentes na interface; Esta definição deverá possuir o mesmo nome e a mesma assinatura, retorno e parâmetros que foram definidas na interface, no método da classe.


Exemplos:
Declaração da Interface

public interface IProduto 

{

bool EPerecivel { get; }

Fornecedor RecuperarFornecedor();

void RegistrarVenda(Cliente cliente);

}

Implementação da Interface

public class Computador : IProduto 

{

private bool ePerecivel;

public bool EPerecivel

{

get { return ePerecivel; }

}

public Fornecedor RecuperarFornecedor()

{

return new Fornecedor();

}

public void RegistrarVenda(Cliente cliente)

{

// Rotina para registrar vendas

}

}


// Comente!

comentários

Olá, eu sou a Gabi e eu criei o "Eu Faço Programas" em 2011, quando ainda trabalhava em desenvolvimento web. Atualmente meu trabalho é focado em estratégia digital e redes sociais. Quer saber mais? www.imgabi.com

7 Comentários

  • Responder junho 26, 2011

    Barbara

    Olá, você faz programas em C? Quanto cobra por um programa?

    • Responder junho 26, 2011

      gabiifonseca

      Bárbara, eu desenvolvo em algumas linguagens, mas o que mais gosto é desenvolver para web, em C#.
      É difícil dizer quanto cobrar por um programa, ainda mais sem saber nada sobre ele. Pretendo escrever um post sobre isso, mas basicamente, você deve levantar os principais pontos do desenvolvimento e estudar quantos dias/horas irá gastar no trabalho. Só assim é possível estipular um valor 🙂

      • Responder novembro 26, 2012

        Luciana

        Então meu professor pediu um programa para controlar as vendas e o estoque de um estabelecimento comercial pequeno, contendo: menu principal, cadastro de produtos, cadastro de vendeores, cadastro de clientes, registro de vendas e relatórios de quantidades em estoque e vendas do dia.
        A loja seria uma joalheiria.

        eu fiz tudo só falta a parte de mostrar as vendas do dia que eu não to conseguindo, quanto vc cobra só pra fazer essa parte?

  • Responder abril 10, 2012

    felipe

    qual livro atualizado sobre c# você indicaria.

    • Responder abril 11, 2012

      eufacoprogramas

      olha, eu tenho um material bom aqui. se quiser que te mando, me passa seu e-mail.
      os livros do deitel são muito bons, mas acho ‘chatos’ de serem lidos. já os da série ‘head first’, ou ‘use a cabeça’, são mais intuitivos. ainda não li os da série ‘for dummies’- ‘para leigos’, mas fiquei sabendo que são do mesmo estilo do ‘head first’.
      indico começar por eles e depois utilizar o deitel como fonte de trabalho mais profundo.
      mas me passa seu e-mail porque tenho um material bom da Microsoft qui 😉

      • Responder fevereiro 15, 2013

        Anderson

        Ola, tudo bem!

        Trabalho com C# e a uma ano e meio.

        Gostaria de aprofundar meus conhecimentos.

        Pode me mandar algum material.

        Grato!

  • Responder abril 25, 2013

    Paulo Junior

    Podem me passar um material sobre programação em C# bom ?!!

    Grato!

// Siga as boas práticas: Comente!