SóProvas


ID
7306
Banca
ESAF
Órgão
CGU
Ano
2004
Provas
Disciplina
Engenharia de Software
Assuntos

Analise as seguintes afirmações relativas à programação Orientada a Objetos:

I. O polimorfismo possibilita que o mesmo nome possa ser utilizado em diferentes métodos em uma mesma classe, desde que, por exemplo, as quantidades de parâmetros sejam diferentes.

II. Os métodos estáticos, quando executados, acessam apenas os atributos de instância da classe.

III. O uso de um mesmo nome para identificar diferentes implementações dos métodos pode ocorrer na definição de construtores.

IV. Na hierarquia de classes, a herança múltipla ocorre quando existem diversas classes imediatamente abaixo da classe em questão.

Estão corretos os itens:

Alternativas
Comentários
  • A definição dada no item I refere-se à sobrecarga e não ao Polimorfismo. Por outro lado, o fato de existirem várias classes abaixo de uma determinada classe não denota herança múltipla. Portanto, a alternativa certa é a letra B.
  • I - Esta alternativa NÃO se refere ao polimorfismo, mas SIM à sobrecarga de métodos. (Errado)

    II - Os métodos estáticos, quando executados, acessam apenas os atributos de classe (estáticos) e NÃO os atributos de instância da classe. (Errado)

    III - Esta alternativa também se refere à sobrecarga de métodos, o que pode ocorrer na definição dos Contrutores. (Certo)

    IV - A herança múltipla ocorre quando existem diversas classes imediatamente ACIMA da classe em questão. (Errado)

    Portanto esta questão seria uma boa candidata a ser anulada!

    Alguma correção?
  • Overriding and Overloading are both flavors of polymorphism.
    Overriding is a run-time binding polymorphism and Overloading is a compile-time binding polymorphism. Don't any problem item I.
    Internet is plenty of examples. Just one to show: http://www.programmersheaven.com/2/FAQ-JAVA-What-Is-Polymorphism
  • questão totalmente errada... concordo com os amigos abaixo...
  • sobrecarga é um tipo de polimorfismo
  • Exatamente, concordo com o colega abaixo.
    Sobrecarga de métodos é uma forma de se aplicar o polimorfismo.

    Questão correta.
  • É comum definir sobrecarga de métodos ou simplesmente sobrecarga como uma forma de polimorfismo (chamado de polimorfismo ad-hoc).

    Fonte:Wikipédia

  • Polimorfismo Estático: Sobrecarga (método na mesma classe, mesmo nome, diferentes parâmetros e opcionalmente diferente retorno)
    Polimorfismo Dinâmico: Sobrescrita (método na subclasse, mesmo nome, mesmo parâmetro e opcionalmente diferente retorno - segundo algumas regras do java)
  • Ninguém achou estranho ele afirmar que para que haja polimorfismo tem que ter quantidade de parâmetros diferentes? Pelo o que eu saiba para ocorrer polimorfismo pode ter a mesma quantidade de parâmetros que não tem problema... Por exemplo pai.somar(int,int) e pai.somar(string,string) é um polimorfismo na mesma classe (sobrecarga) com a mesma quantidade de parâmetros e na assertiva ele afirma que TEM que ser diferentes.
  • DanJuh,

    O item I apenas dá um exemplo, mas não afirma que TEM que ter necessariamente quantidade de parâmetros diferentes. Veja:

    item I - "..
    desde que, POR EXEMPLO, as quantidades de parâmetros sejam diferentes.."

    O item I está certinho.
  • Não há explicações para que a I esteja certa, 

    Polimorfismo ou Sobrecarga -> O polimorfismo possibilita que o mesmo nome possa ser utilizado em diferentes métodos
    Sobrecarga -> 
    em uma mesma classe, desde que, por exemplo, as quantidades de parâmetros sejam diferentes.

    Portanto a questão refere-se a Sobrecarga. Chamadas polimórficas não acontecem em uma mesma classe, e sim por herança, associação......