Diferença entre Classe e Interface em Java

author
5 minutes, 22 seconds Read

Classe e Interface ambas são usadas para criar novos tipos de referência. Uma classe é uma coleção de campos e métodos que operam em campos. Uma interface tem métodos totalmente abstratos, ou seja, métodos com ninguém. Uma interface é sintaticamente similar à classe mas há uma grande diferença entre classe e interface que é uma classe pode ser instanciada, mas uma interface nunca pode ser instanciada.

Então vamos aprender mais algumas diferenças entre uma classe e interface com a ajuda de um gráfico de comparação mostrado abaixo.

Conteúdo: Classe Vs Interface

  1. Gráficos comparativos
  2. Definição
  3. Diferenças-chave
  4. Conclusão

Gráficos comparativos

>

Base de comparação Classe Interface
Basic Uma classe é instanciada para criar objectos. Uma interface nunca pode ser instanciada, pois os métodos são incapazes de executar qualquer ação ao invocar.
Palavra-chave classe interface
Especificador de acesso Os membros de uma classe podem ser privados, públicos ou protegidos. Os membros de uma interface são sempre públicos.
Métodos Os métodos de uma classe são definidos para executar uma action específica. Os métodos de uma interface são puramente abstratos.
Implement/Extend Uma classe pode implementar qualquer número de interfaces e pode estender apenas uma classe. Uma interface pode estender múltiplas interfaces mas não pode implementar qualquer interface.
Construtor Uma classe pode ter construtores para inicializar as variáveis. Uma interface nunca pode ter um construtor pois dificilmente há alguma variável para inicializar.

Definição de Classe

Uma classe é um aspecto mais importante da programação Java sem classes que você não pode implementar um programa java. Uma classe cria tipos de referência e estes tipos de referência são usados para criar objetos. Uma classe tem uma assinatura e um corpo. A assinatura de uma classe tem o nome da classe e informações que dizem se a classe herdou outra classe. O corpo de uma classe tem campos e métodos que operam nesses campos. Uma classe é criada usando uma palavra-chave classe. Vamos ver como declarar uma classe.

class class_name{/*fields...methods*/}

Quando uma classe é instanciada cada objeto criado contém uma cópia de campos e métodos com eles. Os campos e membros declarados dentro de uma classe podem ser estáticos ou não estáticos. O valor dos membros estáticos é constante para cada objeto enquanto que os membros não estáticos são inicializados por cada objeto de forma diferente de acordo com seu requerimento.

Os membros de uma classe têm especificadores de acesso que decidem a visibilidade e acessibilidade dos membros para o usuário ou para as subclasses. Os especificadores de acesso são públicos, privados e protegidos. Uma classe pode ser herdada por uma outra classe usando o especificador de acesso que decidirá a visibilidade dos membros de uma superclasse (classe herdada) em uma subclasse (classe herdada). Assim, a classe cumpre o conceito de ocultação e encapsulamento de dados na programação orientada a objetos.

Definição de Interface

Uma interface também está entre os tipos de referência definidos em Java. A importância de uma interface é que em Java, uma classe só pode herdar uma única classe. Para evitar esta restrição, os designers de Java introduziram um conceito de interface. Uma interface é sintaticamente similar a uma classe, mas falta a declaração de campo e os métodos dentro de uma interface não têm nenhuma implementação. Uma interface é declarada usando uma interface por palavra-chave. Vamos ver a declaração de uma interface.

interface interface_name {type var_name= value;type method1(parameter-list);type method2(parameter-list);..}

Uma interface não define nenhum método declarado dentro dela porque não tem campos para operar. Apenas porque qualquer método dentro de uma interface não executa nenhuma ação, uma interface nunca pode ser instanciada. Se uma interface tem algum membro de campo, ele deve ser inicializado no momento de sua declaração. Uma interface nunca contém nenhum construtor, pois faltam membros de campo para serem inicializados. Então, uma interface só define o que uma classe deve fazer ao invés de como ela deve fazer.

Uma interface uma vez criada pode ser implementada por qualquer número de classes usando uma palavra-chave implementos. Mas as classes que implementam uma interface devem definir todos os métodos dentro de uma interface. Uma interface também pode herdar outra interface usando a palavra-chave extend. Se uma classe implementa uma interface que estende outra interface. Então uma classe deve definir os métodos de ambas as interfaces que aparecem em uma cadeia. Os métodos dentro de uma interface devem sempre ser públicos, pois eles devem ser acessados pelas classes que os implementam.

Key Differences Between Class and Interface in Java

  1. Uma classe pode ser instanciada através da criação de seus objetos. Uma interface nunca é instanciada, pois os métodos declarados dentro de uma interface são abstratos e não executam nenhuma ação, portanto não há uso de instanciar nenhuma interface.
  2. Uma classe é declarada usando uma classe de palavra-chave. Da mesma forma, uma interface é criada usando uma interface de palavra-chave.
  3. Os membros de uma classe podem ter o especificador de acesso como público, privado, protegido. Mas os membros de uma interface são sempre públicos, pois eles têm que ser acessados pelas classes que os implementam.
  4. Os métodos dentro de uma classe são definidos para executar uma ação nos campos declarados na classe. Como falta interface na declaração de campos, os métodos dentro de uma interface são puramente abstratos.
  5. Uma classe pode implementar qualquer número de interfaces mas pode estender apenas uma super-classe. Uma interface pode estender qualquer número de interfaces mas não pode implementar qualquer interface.
  6. Uma classe tem construtores definidos dentro dela para que a variável seja inicializada. Mas, uma interface não tem construtores, pois não há campos a serem inicializados. Os campos de uma interface são inicializados somente no momento de sua declaração.

Conclusão

Bambas as classes e interfaces têm sua própria importância. Uma classe é usada quando precisamos definir como a tarefa seria feita. Uma interface é usada quando precisamos saber que tarefa tem que ser feita.

Similar Posts

Deixe uma resposta

O seu endereço de email não será publicado.