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!