Usando classes abstratas
Java para Iniciantes (Oracle)
Posted on September 21, 2024
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).
💖 💪 🙅 🚩
Java para Iniciantes (Oracle)
Posted on September 21, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
webdev JavaScript Higher-Order Functions Made Easy: Learn with a Real-Life Example! 💡
November 30, 2024