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