Ed
há 10 meses
Vamos analisar a situação apresentada. Temos uma superclasse A e duas subclasses B e C, cada uma implementando o método `calcularValor` de maneira diferente. Quando chamamos `calcularValor` a partir de referências do tipo A, mas que apontam para instâncias de B e C, o método que é executado é aquele que corresponde à instância real do objeto, não à referência. Isso é um exemplo clássico de polimorfismo, onde o mesmo método pode ter comportamentos diferentes dependendo do objeto que o invoca. Agora, vamos analisar as alternativas: - Sobrecarga de métodos: Refere-se a ter múltiplos métodos com o mesmo nome, mas com diferentes parâmetros. Não é o caso aqui. - Métodos abstratos: São métodos que não têm implementação na superclasse e devem ser implementados nas subclasses. Não foi mencionado que `calcularValor` é abstrato. - Métodos estáticos: São métodos que pertencem à classe e não à instância. O polimorfismo não se aplica a métodos estáticos. - Polimorfismo: É exatamente o que está acontecendo aqui, onde o mesmo método `calcularValor` se comporta de maneira diferente dependendo da instância (B ou C). - Sobrecarga de construtor: Refere-se a ter múltiplos construtores na mesma classe com diferentes parâmetros. Não é relevante para o caso apresentado. Portanto, a alternativa correta é: Polimorfismo.
Libere respostas sem pagar
Ajude estudantes
Mais perguntas desse material