SóProvas


ID
238288
Banca
CESPE / CEBRASPE
Órgão
ABIN
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

Julgue os itens a seguir, relativos a conceitos de programação
estruturada e de programação orientada a objetos.

Sobrecarga e sobreposição de métodos são implementações específicas de polimorfismo, já que, em ambos os casos, a decisão sobre o método a ser chamado é realizada em tempo de execução.

Alternativas
Comentários
  • Sobrecarga é em tempo de execução. Durante a execução chamarei o método com parâmetros e tipos de retornos pertinentes à aquela execução específica.

    Sobreposição é em tempo de compilação. O compilador identifica que os métodos são idênticos e o método herdado é sobreposto já na compilação.

  • Olá, pessoal!

    O gabarito foi atualizado para "C", após recursos, conforme edital divulgado pela banca e publicado no site.

    Justificativa da banca: Sobrecarga é também chamada polimorfismo ad-hoc, e sobreposição é polimorfismo universal. Em ambos os casos, a ligação é dinâmica e feita em tempo de execução. Devido ao exposto, opta-se pela alteração do gabarito de ERRADO para CERTO.

    Bons estudos!

  •  

    O gabarito preliminar foi alterado para CERTO equivocadamente.
     
    Sobrecarga é polimorfismo estático, realizado em tempo de compilação, não de execução.
     
    Method overloading is usually associated with statically-typed programming languages which enforce type checking in function calls. When overloading a method, you are really just making a number of different methods that happen to have the same name. It is resolved at compile time which of these methods are used.
  • Concordo com o André. Se alguem tiver alguma explicação que contraste com nosso ponto de vista, seria muito bem vinda. Grato.
  • amigo,

    vc esta errado. o java segue isso a fio sim. o recorte que vc fez esta falando explicitamente de sobreposição = overriding

    retirei do link que vc passou:

    The method overriding is an example of runtime polymorphism. You can have a method in subclass overrides the method in its super classes with the same name and signature. Java virtual machine determines the proper method to call at the runtime, not at the compile time.
  • Sobrecarga > Overloading > Tempo de compilação > Polimorfismo estático

    Sobreposição > Overriding > Tempo de execução > Polimorfismo dinâmico

    Gabarito não poderia ter sido alterado com base em um autor.
  • Na minha opinião, o gabarito não deveria ter sido alterado. Vou me justificar com base no livro Java Como Programar (de Deitel & Deitel).
    "Métodos com o mesmo nome podem ser declarados na mesma classe, contanto que tenha diferentes conjuntos de parâmetros. Isso é chamado de sobrecarga de métodos. Quando um método sobrecaregado (overloaded method) é chamado, o compilador seleciona o método adequado examinando o número, os tipos e a ordem dos argumentos".
    (Deitel & Deitel. Java Como Programar, 6ª edição, pg. 184)
    Logo tal decisão ocorre em tempo de compilação. Isso torna a assertiva errada!

    Exemplo: na figura a seguir, observe os métodos Visit da classe TWOperacoesPA: eles estão sobrecarregados.

    http://lgaf.webs.com/arqs/Visitor.gif

    No mesmo livro, temos a seguinte afirmação sobre o método toString - um método Java sobreposto (override) em todas as classes (pg. 351, alterado):
    "Todas as chamadas ao método toString são resolvidas em tempo de execução com base no tipo do obejto referenciado. Esse processo é conhecido como vinculação dinâmica ou vinculação tardia. (...) Como resultado, o Java decide qual método toString da classe é chamado em tempo de execução, em vez de tempo de compilação."

    Exemplo: na figura acima, observe os métodos Accept das classes TWMateriaPrima, TWMaquina e TWRoteiro: eles estão sobrepostos.
  • essa foi a questão mais absurda q eu já vi.

    Com essa eu realmente constato que os examinadores do Cespe NUUUUUNCA programaram na vida!


    São caras teóricos que nunca devem ter aberto um código fonte.
  • Só que acontece que a questão não se refere a Java.

    Eu também pensei que seriam decididos em tempo de execução, conforme a decisão final do CESPE.

    Mas de todas as pesquisas que fiz, O CONCEITO que é dado de sobrecarga, deixa como incorreta a decisão final do CESPE.

    É mais uma das tristes questões do cespe...
  • Pessoal nesse artigo do itnerante, o professor fala dos tipos de polimorfismos. Segundo o artigo essa questão tá errada.

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

  • Prezados,

    Segundo Booch, Rumbauch e Jacobson, UML Guia do usuário, página 131, em uma estrutura de herança, poderá haver muitos métodos para a mesma operação e o polimorfismo seleciona qual o método existente na hierarquia é empregado em tempo de execução.

    Ao falar "muitos métodos para a mesma operação" , temos 2 tipos de polimorfismo, também chamados de estatico e dinâmico, ou sobrecarga e sobreposição.
    Na sobrecarga nos temos o mesmo nome de método, entretanto ele recebe parametros diferentes. Na sobreposição temos o mesmo nome do método e o mesmo parametro , entretanto temos duas ou mais implementações em classes filhas.

    Portanto a questão está correta.