Questões Engenharia de Software Orientação a Objetos

Uma classe ClasseA de determinada aplicação possuía um método calculeAlgo() em que t...

Responda: Uma classe ClasseA de determinada aplicação possuía um método calculeAlgo() em que testes (instruções de desvio condicional) eram utilizados para se determinar que algoritmo deveria ser adotado ...


Uma classe ClasseA de determinada aplicação possuía um método calculeAlgo() em que testes (instruções de desvio condicional) eram utilizados para se determinar que algoritmo deveria ser adotado para efetuar o cálculo. Foi criada uma nova hierarquia de classes, iniciando na classe abstrata ClasseB, que declara o método abstrato calcule(). Este método é implementado por cada classe concreta da hierarquia, sendo cada uma delas correspondente a um dos algoritmos previstos no método calculeAlgo() original. ClasseA passou a ter um atributo do tipo ClasseB e métodos de acesso ao mesmo, e calculeAlgo() teve seu código substituído por uma simples chamada ao método calcule() do objeto armazenado no novo atributo. O conceito OO (Orientação a Objetos) predominante na descrição acima é a(o)

Matheus Fernandes
Por Matheus Fernandes em 06/01/2025 03:10:06🎓 Equipe Gabarite
Gabarito: d)

O conceito predominante na descrição acima é o polimorfismo.

Polimorfismo é um dos princípios da Orientação a Objetos que permite que objetos de classes diferentes possam ser tratados de maneira uniforme, ou seja, um mesmo método pode se comportar de forma diferente em cada classe que o implementa. No caso descrito, a classe abstrata ClasseB declara o método abstrato calcule(), que é implementado de forma específica em cada classe concreta da hierarquia, permitindo que o método calculeAlgo() da ClasseA possa chamar o método calcule() de forma polimórfica, ou seja, executando o algoritmo correspondente à classe concreta armazenada no atributo do tipo ClasseB.