Diferença entre classe e interface em Java

Autor: Laura McKinney
Data De Criação: 2 Abril 2021
Data De Atualização: 13 Poderia 2024
Anonim
Diferença entre classe e interface em Java - Tecnologia
Diferença entre classe e interface em Java - Tecnologia

Contente


Classe e Interface são usados ​​para criar novos tipos de referência. Uma classe é uma coleção de campos e métodos que operam em campos. Uma interface possui métodos totalmente abstratos, isto é, métodos com ninguém. Uma interface é sintaticamente semelhante à classe, mas há uma grande diferença entre classe e interface: uma classe pode ser instanciada, mas uma interface nunca pode ser instanciada. Então, vamos aprender mais algumas diferenças entre uma classe e uma interface com a ajuda de um gráfico de comparação mostrado abaixo.

  1. Gráfico de comparação
  2. Definição
  3. Principais diferenças
  4. Conclusão

Gráfico de comparação

Base para ComparaçãoClasseInterface
BasicUma classe é instanciada para criar objetos.Uma interface nunca pode ser instanciada, pois os métodos não conseguem executar nenhuma ação na chamada.
Palavra-chaveclasseinterface
Especificador de acessoOs 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 ação específica.Os métodos em uma interface são puramente abstratos.
Implementar / EstenderUma classe pode implementar qualquer número de interface e pode estender apenas uma classe.Uma interface pode estender várias interfaces, mas não pode implementar nenhuma interface.
Construtor Uma classe pode ter construtores para inicializar as variáveis.Uma interface nunca pode ter um construtor, pois quase não há variável para inicializar.


Definição de Classe

Uma classe é um aspecto mais importante da programação Java sem classes, você não pode implementar um programa java. Uma classe cria tipos de referência e esses 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 e as informações da classe que informam se a classe herdou outra classe. O corpo de uma classe possui campos e métodos que operam nesses campos. Uma classe é criada usando uma palavra-chave classe. Vamos ver como declarar uma classe.

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

Quando uma classe é instanciada, cada objeto criado contém uma cópia dos 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 de membros estáticos é constante para cada objeto, enquanto os membros não estáticos são inicializados por cada objeto de maneira diferente, de acordo com seus requisitos.


Os membros de uma classe têm especificadores de acesso que decidem a visibilidade e acessibilidade dos membros ao usuário ou às subclasses. Os especificadores de acesso são públicos, privados e protegidos. Uma classe pode ser herdada por 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 pode herdar apenas uma única classe. Para evitar essa restrição, os designers de Java introduziram um conceito de interface. Uma interface é sintaticamente semelhante a uma classe, mas falta na declaração de campo e os métodos dentro de uma interface não têm nenhuma implementação. Uma interface é declarada usando uma palavra-chave interface. Vamos ver a declaração de uma interface.

interface nome_da_ interface {tipo var_name = valor; tipo method1 (lista de parâmetros); tipo method2 (lista de parâmetros); . . }

Uma interface não define nenhum método declarado nela porque não possui campos para operar. Só porque qualquer método dentro de uma interface não executa nenhuma ação, uma interface nunca pode ser instanciada. Se uma interface tiver algum membro de campo, ele deverá ser inicializado no momento da declaração. Uma interface nunca contém construtores, pois falta nos membros do campo a inicialização. Portanto, uma interface define apenas o que uma classe deve fazer em vez de como deve fazer.

Uma interface criada uma vez pode ser implementada por qualquer número de classes usando uma palavra-chave implementa. 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 ampliar palavra-chave Se uma classe implementa uma interface que estende uma 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 precisam ser acessados ​​pelas classes que os implementam.

Principais diferenças entre classe e interface em Java

  1. Uma classe pode ser instanciada criando 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 é possível instanciar nenhuma interface.
  2. Uma classe é declarada usando uma classe de palavra-chave. Da mesma maneira, 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 e protegido. Mas os membros de uma interface são sempre públicos, pois precisam 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 superclasse. Uma interface pode estender qualquer número de interfaces, mas não pode implementar nenhuma interface.
  6. Uma classe possui construtores definidos dentro dela para inicializar a variável. Porém, uma interface não possui construtores, pois não há campos a serem inicializados. Os campos de uma interface são inicializados apenas no momento da declaração.

Conclusão:

Ambas as classes e interfaces têm sua própria importância. Uma classe é usada quando precisamos definir como a tarefa seria realizada. Uma interface é usada quando precisamos saber qual tarefa deve ser realizada.