Ed
há 4 meses
Vamos analisar o conceito de polimorfismo por sobrecarga de métodos em Java: - A sobrecarga ocorre quando há métodos com o mesmo nome, mas com assinaturas diferentes (tipos ou ordem dos parâmetros). - O tipo de retorno não influencia na sobrecarga. - O nome do método deve ser exatamente o mesmo. Dado o método original: ```java public double calcularVenda(double val, double perc, int qtd) ``` Vamos analisar as alternativas: 1. `public int calcularVenda(int qtd, double val, double perc)` - Mesmo nome: calcularVenda - Parâmetros: (int, double, double) — ordem e tipos diferentes - Tipo de retorno diferente (int vs double) — não impede sobrecarga → Correto para sobrecarga. 2. `public int Venda(double val, double perc, int qtd)` - Nome diferente: Venda ≠ calcularVenda → Não é sobrecarga. 3. `public double calcularVenda(double v, double p, int q)` - Mesmo nome e mesma assinatura (mesmos tipos e ordem) → Não é sobrecarga, é redefinição (override) ou duplicação. 4. `public double calcular(double val, int qtd, double perc)` - Nome diferente: calcular ≠ calcularVenda → Não é sobrecarga. 5. `public double calcularVenda(double perc, double val, int qtd)` - Mesmo nome - Parâmetros: (double, double, int), mas ordem diferente do original (val, perc, qtd) vs (perc, val, qtd) → Ordem diferente, portanto assinatura diferente → sobrecarga válida. Conclusão: as alternativas que representam sobrecarga correta são a 1 e a 5. Porém, a questão pede o uso correto do polimorfismo de sobrecarga, e entre as opções apresentadas, a que melhor representa isso é: Resposta correta: `public int calcularVenda(int qtd, double val, double perc)` (alternativa 1)
Cadastre-se ou realize login
Mais perguntas desse material