A Programação Orientada a Objetos (OOP) é um paradigma comum no desenvolvimento de software. Ajuda a trazer cenários do mundo real para a programação usando classes e objetos. Uma classe é um blueprint para criar um objeto. O programador pode criar uma classe com propriedades e métodos. Um aluno e um professor são objetos. Criar um objeto é conhecido como instanciação. OOP também usa interfaces. Interfaces e classe podem parecer semelhantes, mas têm uma diferença. Este artigo discute a diferença entre uma classe e uma interface. o diferença chave entre uma classe e uma interface é que uma classe é um tipo de referência que é um blueprint para instanciar um objeto enquanto a interface é um tipo de referência que não pode ser usado para instanciar um objeto.
1. Visão geral e principais diferenças
2. O que é classe
3. O que é interface
4. Semelhanças entre classe e interface
5. Comparação lado a lado - classe versus interface em forma de tabela
6. Resumo
No POO, tudo é considerado como um objeto. Não é possível criar um objeto sem uma classe. Uma classe é um blueprint para criar um objeto. Ao construir uma casa, o arquiteto desenha o plano. O plano é semelhante a uma classe. A casa é semelhante ao objeto. A classe é o plano para construir um objeto. Um objeto é o que é criado usando a classe.
A classe contém as propriedades e métodos. Um aluno pode ter propriedades como nome, nota, número de índice. Um aluno pode ter métodos como ler, caminhar, estudar. Uma classe é criada com as propriedades e métodos necessários.
A sintaxe para criar uma classe em muitas linguagens de programação é a seguinte. É criado usando a classe de palavra-chave.
classe class_name
// propriedades
//métodos
Linguagens de programação como C # e Java seguem uma sintaxe semelhante para criar um objeto usando uma classe. Suponha que o nome da classe seja Aluno.
Aluno s1 = novo Aluno ();
Este s1 é o objeto. A palavra-chave "new" é usada para alocar memória para as propriedades. Uma classe também possui um construtor para inicializar propriedades ou variáveis.
Os membros da classe, como propriedades e métodos, têm modificadores de acesso. Os especificadores de acesso descrevem a acessibilidade e a visibilidade desses membros para outras classes. Os membros da classe podem ter especificadores de acesso, como público, privado e protegido. Membros públicos são acessíveis por outras classes. Membros privados são acessíveis apenas para a classe. Os membros protegidos são acessíveis na classe e nas subclasses relevantes.
Abstração é um pilar da programação orientada a objetos. É para ocultar os detalhes da implementação e exibir a funcionalidade para o usuário. A abstração é obtida usando classes e interfaces abstratas. Um método abstrato não tem uma implementação. Uma classe que contém pelo menos um método abstrato é chamada de classe abstrata.
Quando existem duas classes abstratas, os métodos declarados nessas classes devem ser implementados. Uma nova classe é usada para implementar esses métodos. Se ambas as classes tiverem o mesmo método, isso poderá causar um problema de ambiguidade. Portanto, linguagens de programação como Java e C # têm uma interface.
As interfaces contêm apenas a declaração de métodos. Não há método de implementação. Além disso, as interfaces não podem ser usadas para criar objetos. Eles são usados para suportar várias heranças e proteger o código.
A sintaxe da interface é a seguinte. Interface use a palavra-chave "interface".
interface interface_name
tipo method1 (lista_parâmetro);
tipo method2 (lista_parâmetro);
De acordo com o acima, as interfaces possuem apenas a declaração. Não há definição. Portanto, as interfaces não podem instanciar objetos. Ele fornece apenas uma visão abstrata do que é a interface. Os métodos declarados na interface podem ser implementados por uma ou várias classes. Uma classe usa a palavra-chave "implementar" para implementar uma interface. Consulte o exemplo abaixo, escrito usando Java.
Figura 01: Programa usando interfaces
De acordo com o programa acima, A e B são interfaces. A interface A possui uma declaração de método que é a soma (). A interface B possui uma declaração de método sub (). A classe C está implementando as duas interfaces A e B. Portanto, a classe C define os métodos sum () e sub (). Após criar o objeto do tipo C, é possível chamar os métodos sum () e sub ().
Os métodos declarados dentro da interface sempre devem ser públicos porque as classes de implementação os definem. Uma interface também pode herdar de outra interface.
Classe vs Interface | |
Uma classe é um tipo de referência que é um blueprint para criar um objeto. | Uma interface é um tipo de referência que não pode ser instanciado. |
Instanciação de Objetos | |
Uma classe é usada para instanciar um objeto. | Uma interface não pode ser instanciada porque os métodos não conseguem executar nenhuma ação. |
Construtor | |
Uma classe contém um construtor, para inicializar as variáveis. | Uma interface não contém um construtor porque quase não existem variáveis para inicializar. |
Palavra-chave | |
Uma classe usa a palavra-chave "class". | Uma interface usa a palavra-chave "interface". |
Especificador de acesso | |
Os membros da classe podem ser privados, públicos e protegidos. | Os membros da interface devem ser sempre públicos, porque as classes de implementação os definem. |
Classes e interfaces são amplamente usadas na programação orientada a objetos. A diferença entre uma classe e uma interface é que uma classe é um tipo de referência que é um blueprint para instanciar um objeto e a interface é um tipo de referência que não pode ser usado para instanciar um objeto. Uma classe pode implementar muitas interfaces. Mas só pode estender uma superclasse. Na interface pode herdar muitas interfaces, mas não pode haver uma implementação. Ambos têm sua importância. O programador pode usá-los de acordo com o desenvolvimento de software.
Você pode fazer o download da versão em PDF deste artigo e usá-la para fins offline, conforme nota de citação. Faça o download da versão em PDF aqui Diferença entre classe e interface
1.tutorialspoint.com. “Objeto e classes Java.”, The Point. Disponivel aqui
2.navinreddy20. A interface em java com um exemplo, Java Por Navin Reddy, 11 de dezembro de 2012. Disponível aqui