Boa tarde, entendi que é enviado o parâmetro para a função realizaCalculo(orcamento, imposto) porem como a interface Imposto sabe qual classe(iss ou icms) deve ser chamada?
Boa tarde, entendi que é enviado o parâmetro para a função realizaCalculo(orcamento, imposto) porem como a interface Imposto sabe qual classe(iss ou icms) deve ser chamada?
Oi RITCHELLY
Em tempo de execução a interface vai receber um tipo ISS ou ICMS:
public static void main(String[] args) {
Imposto iss = new ISS();
Imposto icms = new ICMS();
Orcamento orcamento = new Orcamento(500.0);
CalculadorDeImpostos calculador = new CalculadorDeImpostos();
// Calculando o ISS
calculador.realizaCalculo(orcamento, iss);
// Calculando o ICMS
calculador.realizaCalculo(orcamento, icms);
}
Apesar de "imposto" receber ambos os tipos, em tempo de execução vai ser sempre um dos dois tipos, então o Java vai rodar aquele que você passou.