Qual é a diferença entre classe abstrata e interface em Java

Índice:

Anonim

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