SóProvas


ID
661798
Banca
FCC
Órgão
TRE-CE
Ano
2012
Provas
Disciplina
Engenharia de Software
Assuntos

Sobre conceitos em programação orientada a objetos (OOP), analise:

I. No polimorfismo ad-hoc, métodos com o mesmo nome e pertencentes à mesma classe, podem receber argumentos distintos, consequentemente alterando a assinatura do método.

II. No polimorfismo paramétrico é possível determinar o método como atributos de objetos são acessados por outros objetos, protegendo o acesso direto aos mesmos através de operações.

III. Na restrição de multiplicidade é possível determinar o número de atributos e operações que uma classe pode herdar de uma superclasse.

Está correto o que consta em

Alternativas
Comentários
  • Existem três tipos de polimorfismo que a linguagem pode ter:

    • 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 (Java)
    • Ad-Hoc
      • Sobrecarga - duas funções/métodos com o mesmo nome mas assinaturas diferentes

     

    • Universal
    1. 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)
    2. Paramétrico - se restringe ao uso de templates (C++, por exemplo) e generics (C#/Java)
    • Ad-Hoc
    1. Sobrecarga - duas funções/métodos com o mesmo nome mas assinaturas diferentes
    fonte: http://pt.wikipedia.org/wiki/UML
  • Distinguem-se geralmente três tipos de polimorfismo:

    Fonte: http://pt.kioskea.net/contents/416-poo-o-polimorfismo

  • Alguém poderia me dizer quais os erros dos itens I e II?

  • @wagner, no item I não há erro, pois é a assertiva correta.

    No item II, está sendo utilizado o conceito de encapsulamento para definir polimorfismo paramétrico.
    Definição de Polimorfismo paramétrico
    Permite parametrizar as classes dizendo qual tipo vai existir nas suas coleções.(Conhecido em java como Generics)

    List listaStrings = new ArrayList();
    listaStrings.add(“primeira string”);
    listaStrings.add(“segunda string”);


  • Comentários do Prof: Filipe Leite.

    Vamos analisar cada opção individualmente pra matar a questão:

    I - Queridos alunos, métodos de mesmo nome e assinatura distinta caracterizam sobrecarga, certo? Sobrecarga é ad-hoc? Sim!!! Portanto, afirmativa corretinha! Sem problemas aqui!

    II - Percebeu na definição que ele deu pra polimorfismo paramétrico? Tem nada a ver né? Isso é encapsulamento pessoal! Você proteger o acesso direto a atributos através de métodos (getters e setters) é outro conceito de OO (encapsulamento) que não está relacionado a polimorfimo, portanto afirmativa incorreta!

    III - Restrição de multiplicidade não tem nada a ver com herança né pessoal?! Nas restrições você apenas restringe o número de classes a que outra classe está associada ou o número de atributos que existem numa classe (sim, na UML isso também é possível restringir o número de atributos). Portanto afirmação incorreta!

    Sobrou pra gente a opção b como letra certa! Se você errou, relaxa! A questão não era molezinha!

    http://www.itnerante.com.br/profiles/blogs/polimorfismo-universal-e-ad-hoc-cai-em-concurso-e-voc-n-o-sabia