Qual é a diferença entre classe abstrata e interface em Java
Índice:
- O que é classe abstrata em Java
- O que é interface em Java
- Diferença entre classe abstrata e interface em Java
o principal diferença entre a classe abstrata e a interface em Java é que o a classe abstrata é usada para implementar a abstração, enquanto a interface é usada para implementar a abstração, bem como a herança múltipla.
Um dos principais pilares da Programação Orientada a Objetos (OOP) é a Abstração. É o processo de ocultar os detalhes de implementação e exibir apenas a funcionalidade ao usuário. Por exemplo, o usuário não precisa entender os circuitos dentro do controle remoto para operá-lo. A abstração é semelhante a isso. Ele permite que o programador se concentre no que o objeto faz em vez de em como é feito. Em Java, existem dois métodos para obter abstração: usando classes abstratas e usando interfaces. Além disso, a herança é outro pilar OOP. Refere-se ao uso de dados e métodos de uma classe já existente. Herança múltipla refere-se ao uso de dados e métodos de várias classes. É possível implementar herança múltipla usando interfaces.
Classe abstrata, interface, herança múltipla
O que é classe abstrata em Java
Uma classe que é declarada com a palavra-chave abstract é conhecida como classe abstrata. Uma classe abstrata pode ter métodos abstratos, bem como métodos não abstratos. Uma classe pode estender uma classe abstrata e implementar os métodos abstratos da classe abstrata. Não é possível criar objetos de uma classe abstrata, mas é possível criar objetos de uma classe que estende a classe abstrata. Consulte o exemplo abaixo.
Figura 1: classe abstrata de forma
Figura 2: classe retângulo
Figura 3: Classe principal para o programa 1
A forma é uma classe abstrata. Possui o método abstrato draw e exibição de método não abstrato. A classe Rectangle estende Shape. Portanto, a classe Rectangle implementa o método abstrato draw. Na função principal, um objeto Rectangle é criado. O obj.draw () irá chamar o método em Rectangle draw () e imprimirá “Rectangle”.
O que é interface em Java
Uma interface em Java é semelhante a uma classe. Todos os métodos em uma interface são métodos abstratos. Semelhante a uma classe abstrata, uma interface não pode ser instanciada. Uma interface pode ser usada para abstração, bem como para a implementação de herança múltipla. Uma interface é declarada usando a palavra-chave interface. Uma classe que implementa a interface deve implementar todos os métodos declarados na interface. Consulte o exemplo abaixo que ilustra o uso da interface para obter abstração.
Figura 4: Interface de forma
Figura 5: classe de círculo
Figura 6: Classe principal do programa 2
A forma é uma interface, que possui um método abstrato denominado desenhar. A classe Circle estende Shape. Portanto, a classe Circle implementa o método abstrato draw. Na função principal, um objeto Círculo é criado. O s.draw () chamará o método draw em Circle e imprimirá “Circle”.
As interfaces também podem ser usadas para implementar herança múltipla.
Figura 7: Interface A
Figura 8: Interface B
Figura 9: Classe C
Figura 10: Classe principal do programa 3
As interfaces A e B possuem a exibição do método abstrato. A classe C implementa as interfaces A e B. A classe C fornece a implementação para a exibição do método. No método principal, um objeto de C é criado. O obj.display chamará o método display em C e imprimirá “Hello World!”.
Diferença entre classe abstrata e interface em Java
Definição
Uma classe abstrata é uma classe declarada com uma palavra-chave abstrata, que é uma coleção de métodos abstratos e não abstratos. Em contraste, uma interface em Java é um tipo de referência semelhante a uma classe que é uma coleção de métodos abstratos. Esta é a diferença básica entre classe abstrata e interface em Java.
Variáveis
As variáveis usadas são uma diferença entre classe abstrata e interface em Java. Enquanto uma classe abstrata pode ter variáveis finais, não finais, estáticas e não estáticas, uma interface só pode ter variáveis estáticas e finais.
Métodos
Outra diferença entre a classe abstrata e a interface em Java é que a classe abstrata pode ter métodos abstratos e métodos não abstratos, enquanto a interface pode ter apenas métodos abstratos.
Herança Múltipla
Palavra-chave da classe
Além disso, a palavra-chave abstract é usada para declarar a classe abstrata, mas a palavra-chave interface é usada para declarar uma interface.
Estendendo e implementando
Além disso, uma classe abstrata pode ser estendida usando a palavra-chave “extends”. Uma classe de interface pode ser implementada usando a palavra-chave “implements”.
Implementação
Além disso, a classe abstrata pode ser implementada usando a palavra-chave “implementa”, enquanto a interface é usada para implementar a abstração, bem como a herança múltipla.
Conclusão
A diferença entre a classe abstrata e a interface em java é que a classe abstrata é usada para implementar a abstração, enquanto a interface é usada para implementar a abstração, bem como a herança múltipla.
Referência:
1. “Abstract Class in Java - Javatpoint.” Www.javatpoint.com, disponível aqui.2. “Interface em Java - Javatpoint.” Www.javatpoint.com, disponível aqui.
![Qual é a diferença entre classe abstrata e interface em Java Qual é a diferença entre classe abstrata e interface em Java](https://img.books-kingdom.com/images/002/image-4006.jpg)