1
resposta

Não entendi a funcinalidade da classe CalcularImpostos

Até a parte da implementação, eu acredito que compreendi. Um produto e um serviço são tributáveis, e tem impostos diferentes, então é feita a implementação da interface "Tributavel" para cada um implementar seu calculo de imposto. Agora temos a classe "CalcularImpostos", que não é utilizada em momento algum, não herda e não implementa nada. Minha dúvida seria, para que ela está ali ? Quando eu invoco o método calculaImposto() de "Produto" e "Servico", ela passa pela classe ?

1 resposta

Oi Igor! Tudo bem?

Na verdade, a classe que está realizando o cálculo dos impostos é a "CalculadoraImposto", e não "CalcularImpostos". A "CalculadoraImposto" é a responsável por somar os impostos de qualquer objeto que implemente a interface "Tributavel".

A classe "CalcularImpostos" que você mencionou pode ser um erro de digitação ou confusão no material. A "CalculadoraImposto" não herda ou implementa nada porque sua função é simplesmente acumular o total de impostos dos objetos tributáveis, utilizando o método calculaImposto() definido na interface "Tributavel".

Quando você invoca o método calculaImposto() de "Produto" ou "Servico", ele não passa por uma classe chamada "CalcularImpostos", mas sim pela implementação específica do método calculaImposto() em cada uma dessas classes, que calcula o imposto de acordo com as regras definidas para cada tipo.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.