Olá, Gustavo. Tudo bem?
O que você descreveu está relacionado ao conceito de polimorfismo em Java. Quando uma classe implementa uma interface, ela se compromete a fornecer uma implementação concreta para os métodos definidos na interface. Isso permite que diferentes classes implementem esses métodos de maneiras distintas, conforme suas necessidades específicas.
No seu exemplo, tanto a classe Produto quanto a classe Servico implementam a interface Tributavel, cada uma fornecendo sua própria lógica para o método getValorImposto(). Isso significa que a CalculadoraImposto pode chamar getValorImposto() em qualquer objeto que implemente Tributavel, e o método correto será executado com base no tipo do objeto (se é um Produto ou um Servico), demonstrando o polimorfismo.
Por exemplo, se você tiver uma lista de objetos Tributavel que contém tanto Produto quanto Servico, você pode iterar sobre essa lista e calcular o imposto total sem se preocupar com o tipo específico de cada objeto. A interface garante que todos eles terão o método getValorImposto() implementado.
Espero ter ajudado.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!