O polimorfismo, na programação orientada a objetos, é um recurso que permite que diferentes classes respondam de forma distinta à mesma mensagem. Ele pode se manifestar de diferentes formas: estático, quando o compilador decide qual método será chamado; paramétrico, quando classes ou métodos se comportam de maneira genérica com diferentes tipos de dados; e dinâmico, quando a decisão ocorre em tempo de execução, com base no tipo real do objeto. O uso correto do polimorfismo contribui para a flexibilidade e extensibilidade dos sistemas orientados a objetos.
DEITEL, P.; DEITEL, H. Java: Como Programar. 10. ed. São Paulo: Pearson Education do Brasil, 2017. (Adaptado)
Considerando os diferentes tipos de polimorfismo aplicáveis na programação orientada a objetos, selecione a alternativa que expressa corretamente uma implicação prática do uso de uma dessas abordagens no desenvolvimento de sistemas.
A sobrecarga de métodos caracteriza o polimorfismo paramétrico, pois permite que métodos com o mesmo nome aceitem múltiplos parâmetros genéricos.
O polimorfismo paramétrico permite que o mesmo código funcione com diferentes tipos de dados, sem depender do tipo específico em tempo de compilação.
O uso de generics em Java caracteriza polimorfismo dinâmico, pois permite que diferentes implementações sejam escolhidas em tempo de execução pela JVM.
O polimorfismo estático promove maior flexibilidade que o dinâmico, pois permite que diferentes classes substituam implementações de métodos em tempo de execução.
O polimorfismo dinâmico impede o uso de herança, pois exige que todas as classes compartilhem exatamente os mesmos atributos e métodos.
Ed
há 3 meses
Vamos analisar cada uma das alternativas para identificar a correta em relação ao polimorfismo na programação orientada a objetos: 1. A sobrecarga de métodos caracteriza o polimorfismo paramétrico, pois permite que métodos com o mesmo nome aceitem múltiplos parâmetros genéricos. - Incorreto. A sobrecarga de métodos é uma forma de polimorfismo, mas está mais relacionada ao polimorfismo estático, não ao paramétrico. 2. O polimorfismo paramétrico permite que o mesmo código funcione com diferentes tipos de dados, sem depender do tipo específico em tempo de compilação. - Correto. O polimorfismo paramétrico realmente permite que métodos ou classes sejam definidos de forma genérica, funcionando com diferentes tipos de dados. 3. O uso de generics em Java caracteriza polimorfismo dinâmico, pois permite que diferentes implementações sejam escolhidas em tempo de execução pela JVM. - Incorreto. Generics são uma forma de polimorfismo paramétrico, não dinâmico. 4. O polimorfismo estático promove maior flexibilidade que o dinâmico, pois permite que diferentes classes substituam implementações de métodos em tempo de execução. - Incorreto. O polimorfismo dinâmico é o que permite a substituição de métodos em tempo de execução, enquanto o estático é resolvido em tempo de compilação. 5. O polimorfismo dinâmico impede o uso de herança, pois exige que todas as classes compartilhem exatamente os mesmos atributos e métodos. - Incorreto. O polimorfismo dinâmico geralmente é utilizado em conjunto com herança, permitindo que subclasses substituam métodos da superclasse. Portanto, a alternativa correta é: O polimorfismo paramétrico permite que o mesmo código funcione com diferentes tipos de dados, sem depender do tipo específico em tempo de compilação.