O que é uma classe de interface?
As interfaces são usadas junto com as classes para definir o que é conhecido como contrato. Um contrato é um acordo sobre o que a classe fornecerá a uma aplicação.
Uma interface declara as propriedades e métodos. Cabe à classe definir exatamente o que o método fará.
Vejamos um exemplo de interface alterando as classes em nosso aplicativo de console. Observe que não executaremos o código porque não há nada que possa ser executado por meio de uma interface.
Vamos criar uma classe de interface. A classe será chamada de "Guru99Interface". Nossa classe principal então estenderá a interface definida. Todo o código precisa ser escrito no arquivo Program.cs.
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{interface Guru99Interface{void SetTutorial(int pID, string pName);String GetTutorial();}class Guru99Tutorial : Guru99Interface{protected int TutorialID;protected string TutorialName;public void SetTutorial(int pID, string pName){TutorialID = pID;TutorialName = pName;}public String GetTutorial(){return TutorialName;}static void Main(string[] args){Guru99Tutorial pTutor = new Guru99Tutorial();pTutor.SetTutorial(1,".Net by Guru99");Console.WriteLine(pTutor.GetTutorial());Console.ReadKey();}}}
Explicação do código: -
Aqui, explicamos as seções importantes do código
- Primeiro definimos uma interface chamada "Guru99Interface." Observe que a palavra-chave "interface" é usada para definir uma interface.
- A seguir, estamos definindo os métodos que serão usados por nossa interface. Neste caso, estamos definindo os mesmos métodos que são usados em todos os exemplos anteriores. Observe que uma interface apenas declara os métodos. Não define o código neles.
- Em seguida, fazemos nossa classe Guru99Tutorial estender a interface. Aqui é onde escrevemos o código que define os vários métodos declarados na interface. Este tipo de codificação atinge o seguinte
- Ele garante que a classe Guru99Tutorial inclua apenas o código necessário para os métodos "SetTutorial" e "GetTutorial" e nada mais.
- Também garante que a interface se comporte como um contrato. A classe tem que cumprir o contrato. Portanto, se o contrato diz que deve haver dois métodos chamados "SetTutorial" e "GetTutorial", é assim que deve ser.
Resumo
- Uma interface define um contrato que a classe cumprirá. A interface define quais são as operações que a classe pode realizar.