SóProvas


ID
2279956
Banca
CESPE / CEBRASPE
Órgão
FUB
Ano
2016
Provas
Disciplina
Engenharia de Software
Assuntos

A respeito dos conceitos de análise orientada a objetos em engenharia de software, julgue o seguinte item.

Denomina-se polimorfismo o fato de duas ou mais classes de superclasses diferentes possuírem um método com a mesma assinatura, mas com comportamentos diferentes.

Alternativas
Comentários
  • polimorfismo permite que referências de tipos de classes mais abstratas representem o comportamento das classes concretas que referenciam.

  • O erro está em "possuírem um método com a mesma assinatura", pois pode existir polimofirmo com métodoscom assinaturas diferentes, mas mesmo nome...

  • O polimorfismo é caracterizado quando duas ou mais classes distintas tem métodos de mesmo nome, de forma que uma função possa utilizar um objeto de qualquer uma das classes polimórficas, sem necessidade de tratar de forma diferenciada conforme a classe do objeto.

  • O polimorfismo permite esconder ações diferentes em uma interface única e é normalmente implementado pela herança. Sendo possível, por exemplo, reutilizar os métodos de uma superclasse e implementá-los de forma particular nas subclasses de acordo com as necessidades de um sistema. Do mesmo modo, permite existir um mesmo nome de método para subclasses diferentes de uma mesma superclasse, esta característica nos permite utilizar uma mesma chamada de método, a partir de uma referência polimórfica, para obter resultados diferentes simplesmente apontando para as subclasses diferentes. 

    Isto posto, acredito que o erro da questão é afirmar que o fato de duas ou mais classes de superclasses diferentes possuírem um método com a mesma assinatura pode ser chamado de polimorfismo. Por favor, me corrijam se meu raciocínio estiver errado.

  • errado- polimorfismo é um unico nome para classe e metodo com implementações distintas

  • Acredito que o erro esteja em "superclasses diferentes". Deveria ser da mesma superclasse. Quanto ao "método com a mesma assinatura, mas com comportamentos diferentes", trata-se de um tipo de polimorfismo denominado sobrescrita ou sobreposição. Neste aqui, a classe faz a distinção entre os métodos a partir do objeto de entrada.

    Por exemplo. Um método que calcule, uma classe forma que tem um método chamado calcula_area que recebe como argumentos base e altura. Se o objeto que for utilizar esse método for um quadrado, este método terá sua implementação area = base*altura. Já se for um triangulo, o método implementará area = (base*altura)/2. Repare que ambos os métodos tem a mesma assinatura => calcula_area(int base, int altura). Mas qual método a ser utilizado será definido a depender do objeto de entrada.

    Já o polimorfismo que possui assinaturas diferentes é chamado de sobrecarga.

  • Sobrecarga = assinaturas diferentes

    Sobrescrita = mesma assinatura (nome e parâmetros)