SóProvas


ID
790951
Banca
FCC
Órgão
TST
Ano
2012
Provas
Disciplina
Engenharia de Software
Assuntos

Na orientação a objetos

Alternativas
Comentários
  • Acredito que a "D" não está incorreta, só incompleta. Diz que :

    O polimorfismo é aplicado ao caso em que existe a necessidade de implementar métodos sobrecarregados, nos quais a classe-filha necessita implementar dois métodos com o mesmo nome e parâmetros diferentes.

    Isso é o chamado polimorfismo de Ad-hoc (sobrecarga/overload). Conforme a definição do Wikipedia:

    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

    Ele só não citou os outros polimorfismos, mas isso não invalida a questão.

    Alguém pode comentar?
  • Colega você matou a questão.
    Você disse que a questão está incompleta, por este motivo devemos marcar a alternativa mais completa que por sinal é a letra A. 
  • Na época da prova errei essa questão e fiquei indignado, por acreditar que haviam dois itens corretos (A e D) Acontece que houve uma troca sutíl no que se refere a sobrescrita e sobrecarga.

    A questão está errada pelo simples fato que troucou sobreescrita por sobrecarga. 

    A sobrecarga ocorre quando o mesmo método recebe parâmetros diferentes, na mesma classe. 
  • A questão D também está certa, mas FCC é a MAIS CORRETA.

    "O conceito de herança estabelece que uma classe possa aproveitar ..." - o mais correto seria REAPROVEITAR. 

    "O polimorfismo é aplicado ao caso em que existe a necessidade de implementar métodos sobrecarregados"  Polimorfismo não é só sobrecarga, também há sobrescrita. 
  • Não acho que a letra D esteja certa. Este trecho: "a classe-filha necessita implementar dois métodos com o mesmo nome"
    A classe filha pode sobrescrever apenas 1 dos dois métodos sobrecarregados, não precisa implementar os 2.

    Uma Dica: quando a questão não falar qual polimorfismo é, ela está se referindo ao dinâmico.
    Bons estudos!!
  • A alternativa (a) apresenta um erro quando diz que "métodos abstratos definidos em uma classe abstrata" . Não é necessário que a classe-pai seja abstrata para se definir comportamentos diferentes nas classes filhas.

    A alternativo (d) apresenta um erro quando diz que "a classe-filha necessita implementar dois métodos com o mesmo nome e parâmetros diferentes". A sobrecarga é a declaração de dois ou mais métodos com o mesmo nome e parâmetros diferentes, e não há necessidade de que seja uma classe-filha para se fazer sobrecarga de método.

    A frase "O polimorfismo é aplicado ao caso em que existe a necessidade de implementar métodos sobrecarregados", está correta; e pode ser reescrita como "no caso em que haja a necessidade de implementar métodos sobrecarregados aplica-se o polimorfismo".

    Conclusão: Não dá para dizer qual a mais errada (ou mais certa).
  • Discordo do comentário acima com relação a existir erro na alternativa A.

    Lendo com atenção temos o seguinte: 
    O polimorfismo, associado à herança, permite que métodos abstratos definidos em uma classe abstrata sejam implementados nas classes-filhas.

    A frase está perfeita. De fato, o polimorfismo permite definir métodos abstratos e sobrescreve-los em subclasses. Em nenhum momento a questão disse que somente métodos abstratos podem ser sobrescritos.

    Bons estudos a todos
  • a) correta e linda.

    b) errado - pois o modificador Private nega acesso as subclasse.

    c) errado - o polimorfismo pelo contrario, proporciona a subclasse implementar o método da classe pai "de forma personalizada"

    d) errado - são métodos sobrescritos e não sobrecarregados

    e) errado - é a propriedade segundo a qual uma operação pode comportar-se de maneira diferente em classes diferentes (Rumbaugh) 

  • Eliminei a D com o seguinte raciocínio:
    A classe filha não necessita implementar os métodos sobrecarregados, ela simplesmente herda.

  • A letra D é um tanto quanto confusa. Quando relacionado a parte da herança esta certo. Quando fala do polimorfismo existe o que chamamos de polimorfismo estático, que é justamente a sobrecarga de um método com assinaturas diferentes. Analisando separadamente, ambas afirmações estão corretas. Agora em conjunto elas apresentam erro por acontecer uma sobrescrita do método na herança e não uma sobrecarga. Porem, eu poderia realizar a herança normalmente, e realizar um polimorfismo estático apenas na classe filha de um método que não estivesse na classe base, o que não invalidaria a alternativa

  • Cada alternativa grande danada kkkk.

    Se não tiver cuidado, se perde e erra.