1
resposta

[Dúvida] Classe imposto com duas aliquotas

No PHPStorm a classe 'Icpp' que extende 'ImpostoCom2Alíquotas' está exigindo que adicione o método 'calculaImposto' implementado em 'ImpostoCom2Alíquotas', sendo que na aula o é mencionado que deve ter apenas os métodos específicos.

1 resposta

Olá, Eduardo! Tudo bem?

Esta classe abstrata define um método 'calculaImposto' e declara três métodos abstratos: 'deveAplicarTaxaMaxima', 'calculaTaxaMaxima' e 'calculaTaxaMinima'.

Quando você cria uma classe que estende uma classe abstrata, como é o caso da 'Icpp' estendendo 'ImpostoCom2Alíquotas', é necessário que você implemente todos os métodos abstratos declarados na classe abstrata. No caso, você precisa implementar os métodos 'deveAplicarTaxaMaxima', 'calculaTaxaMaxima' e 'calculaTaxaMinima' na classe 'Icpp'.

O método 'calculaImposto' não precisa ser implementado na classe 'Icpp' porque ele já está implementado na classe 'ImpostoCom2Alíquotas'. Este método utiliza os três métodos abstratos para realizar seu trabalho, por isso a necessidade de implementá-los na classe 'Icpp'.

Lembre-se de que a classe 'ImpostoCom2Aliquotas' está fornecendo um template para o cálculo do imposto, e a classe 'Icpp' está fornecendo a implementação específica desse cálculo. É uma aplicação do padrão de design Template Method, que é bastante útil para evitar a duplicação de código.

Espero ter ajudado e bons estudos!

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