O que é uma classe abstrata e um método abstrato em Java? Quando devo usar? Tutorial anexado

Publicados: 2019-09-12
java-abstract-class-tutorial-by-crunchify

Alguns dias atrás eu escrevi um artigo sobre Java Fundamental básico sobre O que é uma interface em Java e como ela é usada? Este tutorial também está relacionado aos fundamentos básicos de Java “ Abstract Class and Abstract Method ”.

O que é uma classe abstrata?

Vamos começar a entender a classe Abstract primeiro e então vamos passar por Example.

  • Uma classe abstrata é uma classe que é declarada abstract
  • Classes abstratas não podem ser instanciadas
  • Classes abstratas podem ser subclassificadas
  • Pode ou não incluir métodos abstratos
  • Quando uma classe abstrata é subclassed , a subclasse geralmente fornece implementações para todos os métodos abstratos em sua classe pai.
  • Se a subclasse não fornecer implementações, a subclasse também deverá ser declarada como abstract .

Esta é uma basic Java Interview Question . Provavelmente a 1 st Java Interview Question que você recebe durante a entrevista.

Posso definir uma classe abstrata sem adicionar um método abstrato?

Claro que sim. Declarar uma classe abstrata significa apenas que você não permite que ela seja instanciada por conta própria. Você não pode ter um método abstrato em uma classe não abstrata.

O que é um método abstrato?

  • Um abstract method é um método que é declarado sem uma implementação.
  • Ele só tem uma assinatura de método.

Vamos começar com um Exemplo. Descrição do Problema:

  1. Crie a classe CrunchifyExam.java , que tem um método abstrato chamado checkResult()
  2. Crie a classe Crunchify1stSchoolExamResult.java , que estende a classe abstrata CrunchifyExam.java
  3. Crie a classe Crunchify2ndSchoolExamResult.java , que estende a classe abstrata CrunchifyExam.java
  4. Agora ambas as classes acima precisam fornecer implementação para o método checkResult()
  5. Ambas as escolas podem ter seu próprio procedure ou number of checks diferentes para descobrir se o usuário é PASSED or FAILED , elas são livres para ter sua própria implementação de checkResult()

Depois de estender a classe CrunchifyExam em Crunchify1stSchoolExamResult.java – o Eclipse solicitará que você implemente métodos abstratos mencionados em CrunchifyExam.java

Implementar Método Abstrato - Tutorial Crunchify

Crunchify1st SchoolExamResult.java

Crunchify2nd SchoolExamResult.java

Resultado do Console do Eclipse:

Basta clicar com o botão direito do mouse em Crunchify2ndSchoolExamResult.java e executar como Java Application para ver o resultado abaixo.

Agora você pode ter uma pergunta

Por que não posso usar a interface aqui em vez de ter Abstract Method e Class e ter CrunchifyExam como uma interface?

Bem – Sure you could – mas você também precisaria implementar os getExamTime (), setExamTime (), getExamTime (), setExamTime ().

Usando classes abstratas, você pode herdar a implementação de outros métodos (não abstratos). Você não pode fazer isso com interfaces – uma interface cannot provide nenhuma implementação de método.

É possível criar classe abstrata e final em Java?

  • O resumo e o final são o conceito mutuamente exclusivo.
  • Então a resposta é NÃO, não podemos fazer uma classe abstrata ou um método final em Java.
  • A aula final é uma aula completa e não pode ser estendida.
  • A classe abstrata é chamada de classe incompleta e só pode ser estendida por outra classe concreta e você precisa implementar todos os métodos abstratos.
  • Além disso, não há como e não é possível ter um método abstrato em uma classe final.

É possível herdar de várias classes abstratas em Java?

  • Java não suporta herança múltipla.
  • Em java só podemos estender uma única classe.
  • Em Java podemos implementar Interfaces de muitas fontes.