首页 > Java > java教程 > 正文

Usando classes abstratas

Linda Hamilton
发布: 2024-09-21 14:17:02
原创
1095 人浏览过

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).

以上是Usando classes abstratas的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!