DEV Community

FUNDAMENTOS JAVA
FUNDAMENTOS JAVA

Posted on

Usando classes abstratas

O que é uma classe abstrata?

  • Uma classe abstrata serve como uma classe base que não pode ser instanciada diretamente. É utilizada para criar uma forma generalizada de uma classe, permitindo que subclasses forneçam implementações específicas de alguns métodos.
  • Métodos abstratos dentro de uma classe abstrata são declarados, mas não têm uma implementação na classe base. As subclasses são obrigadas a fornecer implementações concretas.

Quando usar classes abstratas?

  • Use classes abstratas quando deseja garantir que certas funcionalidades sejam obrigatoriamente implementadas pelas subclasses.
  • Um exemplo comum seria uma classe abstrata de forma geométrica que fornece a assinatura de um método area(), mas deixa para as subclasses, como Triangle e Rectangle, a responsabilidade de definir como calcular a área.

Implementação com o exemplo de TwoDShape:
Ver exemplo no Pacote abstracao

Explicação do código:
Classe Abstrata TwoDShape:

  • Definida como abstrata porque não faz sentido implementar area() diretamente. Cada forma geométrica específica (como um triângulo ou retângulo) deve fornecer sua própria implementação de como calcular a área.
  • O método area() é declarado como abstract, forçando as subclasses a implementar sua versão desse método.

Subclasses Triangle e Rectangle:

  • Ambas as subclasses herdam de TwoDShape e são obrigadas a implementar o método area().
  • Triangle calcula a área com a fórmula base * altura / 2.
  • Rectangle calcula a área com a fórmula largura * altura.

Classe AbsShape:

  • Demonstra o polimorfismo com classes abstratas. O método area() é chamado de forma polimórfica, e a versão correta do método é executada dependendo do tipo do objeto (Triangle ou Rectangle).

AWS GenAI LIVE image

Real challenges. Real solutions. Real talk.

From technical discussions to philosophical debates, AWS and AWS Partners examine the impact and evolution of gen AI.

Learn more

Top comments (0)

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

Rather than just generating snippets, our agents understand your entire project context, can make decisions, use tools, and carry out tasks autonomously.

Read full post

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay