SóProvas


ID
868687
Banca
CESPE / CEBRASPE
Órgão
TRE-MS
Ano
2013
Provas
Disciplina
Engenharia de Software
Assuntos

Em programação orientada a objetos, a possibilidade de haver funções de mesmo nome, com funcionalidades similares em classes sem nenhuma relação entre elas, denomina-se

Alternativas
Comentários
  • Resposta: D

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

    Uma das formas de implementar o polimorfismo é através de uma classe abstrata, cujos métodos são declarados mas não são definidos, e através de classes que herdam os métodos desta classe abstrata.

     

  • Complementando o comentário do colega:

    Existem três tipos de polimorfismo que a linguagem pode ter (atente para o fato de que nem toda linguagem orientada a objeto tem implementado todos os tipos de polimorfismo):

    • Universal
      • Inclusão - um ponteiro para classe mãe pode apontar para uma instância de uma classe filha (exemplo em Java: List lista = new LinkedList(); (tipo de polimorfismo mais básico que existe)
      • Paramétrico - se restringe ao uso de templates (C++, por exemplo) e generics (C#/Java)
    • Ad-Hoc
      • Sobrecarga - duas funções/métodos com o mesmo nome mas assinaturas diferentes.

    Outra informação importante é que boa parte dos padrões de projeto de software baseia-se no uso de polimorfismo, por exemplo:Abstract FactoryCompositeObserverStrategyTemplate Method etc;

    Fonte: 
    http://pt.wikipedia.org/wiki/Polimorfismo
  • Existem os seguintes tipos de polimorfismo: inclusão, paramétrico, sobreposição e sobrecarga. O enunciado apresenta o conceito de polimorfismo de sobrecarga (funções de mesmo nome).

  • O fato de se ter duas classes independentes, sem nenhuma relação entre elas, não significa que haverá polimorfismo só porque ambas possuem um método de mesmo nome.

    Eu poderia ter a classe Casa e a classe Quadrado, cada uma com um método independente para CalcularArea().

    Nesse caso não existe nem sobrescrita (pois ambas não herdaram de nenhuma superclasse) e nem sobrecarga (pois só há um método CalcularArea() em cada classe).

    Me corrijam se eu estiver equivocado nesse entendimento.

  • se essa questão definiu polimorfismo então eu sou o Batman

  • Classes sem NENHUMA relação?? Se fosse uma questão C/E a cobra ia fumar.