Java fornece várias maneiras de fornecer abstração de dados, como interfaces Java e classes abstratas de Java. Tanto a interface quanto a classe abstrata fornecem segurança, ocultando os detalhes da implementação interna e apenas mostrando/destacando os detalhes necessários. No entanto, existem inúmeras semelhanças e distinções entre classes abstratas e interfaces.
Esta postagem o ajudará nos aspectos listados abaixo das interfaces Java e classes abstratas:
Então, vamos começar!
O que é uma interface Java
É um modelo para uma classe que contém alguns métodos abstratos e variáveis estáticas/finais. Em Java, as interfaces fornecem apenas a declaração de método, enquanto as classes de criança/implementada fornecem a definição do método.
O que é uma classe abstrata Java
Qualquer classe Java que tenha pelo menos um método resumo (apenas declaração do método) é conhecido como uma classe abstrata em Java.
Comparação baseada em semelhanças
Alguns aspectos importantes das interfaces Java e as classes abstratas estão listadas abaixo:
Java Abstract Class vs Java Interface
As palavras -chave "Resumo" e "Interface" são usadas em Java para criar/declarar as classes abstratas e interfaces, respectivamente.
Nas interfaces, todos os membros são considerados públicos por padrão; portanto, não há necessidade de especificar o modificador de acesso para os membros das interfaces. Enquanto em classes abstratas, não existe essa restrição e, portanto, qualquer modificador de acesso pode ser usado para os membros de classes abstratas, como público, protegido, etc.
A sintaxe básica de uma classe abstrata e uma interface é mostrada nos trechos abaixo de ditos:
Classe abstrata
classe abstrata public classNameInterface
interface pública interfacenameAs interfaces devem ter todos os métodos abstratos, enquanto as classes abstratas podem ter métodos abstratos e não abstratos.
A interface pode ter apenas membros estáticos, enquanto classes abstratas podem ter membros estáticos e não estáticos.
As interfaces têm apenas membros "finais" (imutáveis), enquanto as classes abstratas podem ter membros finais e não finais.
As interfaces não têm nenhum construtor enquanto as classes abstratas têm construtores definidos ou padrão do usuário.
A herança múltipla pode ser alcançada usando interfaces, enquanto classes abstratas não suportam herança múltipla.
Em Java, a classe abstrata pode herdar outra classe e pode implementar muitas interfaces, por outro lado, uma interface Java pode estender apenas outra interface.
Exemplo
O exemplo abaixo, permitirá que você entenda como as interfaces e as classes abstratas funcionam em Java:
Interface FirstInterfaceNeste exemplo, criamos uma interface “FirstInterface”, Uma classe abstrata “AbstractClass”, e mais duas classes java normais e realizou as seguintes funcionalidades:
O InterfaceExample é a classe principal de onde criamos o método principal e invocamos todos os métodos de FirstInterface:
A saída verificou o funcionamento do programa Java acima do rumo.
Conclusão
Em Java, a abstração pode ser alcançada usando classes e interfaces abstratas, e ambos não podem ser instantados. No entanto, existem múltiplas distinções entre classes abstratas e interfaces. Por exemplo, as interfaces devem ter todos os métodos abstratos, enquanto as classes abstratas podem ter métodos abstratos e não abstratos; Usando interfaces, a herança múltipla pode ser alcançada enquanto classes abstratas não suportam herança múltipla, etc. Este post explicou vários aspectos de classes e interfaces abstratas com a ajuda de exemplos adequados.