SóProvas


ID
215701
Banca
CESPE / CEBRASPE
Órgão
MPU
Ano
2010
Provas
Disciplina
Programação
Assuntos

A respeito da hierarquia de classes, um conceito de relevância na
programação orientada a objetos, julgue o item que se segue.

Considere que uma classe C1 implemente determinado método M1 e tenha duas subclasses: C2 e C3. Nessa situação, o comportamento de um objeto de C2 ou C3 que receba uma mensagem invocando o método M1 será obrigatoriamente idêntico ao comportamento de um objeto de C1 que receba a mesma mensagem.

Alternativas
Comentários
  • Errado, porque pode ter havido a sobreposição (polimorfismo) do método nas subclasses.

  •  Primeiramente, temos em questão uma classe-pai ou superclasse C1, a mesma tem um método chamado M1. A questão também aborda a herança, isso é visto quando as classes C2 e C3 herdam de C1. No mecanismo de herança (é-um), podemos ou não utilizar o método da superclasse.

    O que torna a questão errada é o termo "obrigatoriamente", se quisermos podemos fazer a sobrecarga do método M1 fazendo a nossa própria implementação de comportamento M1 para cada uma das subclasses (C2 e C3). Isto é comum em java quando sobrescrevemos a implementação dos métodos de Object (equals(), hashCode(), etc).

    A título de informação: 

    No Java, temos duas palavras reservadas: super e this. Elas servem de referência para explicitamente utilizar os métodos da superclasse ou subclasse (super para superclasse) e this para subclasse.

  • Não concordo com o gabarito oficial.

    Em nenhum momento foi dito que as subclasses C2 e C3 fizeram sobrecarda do método M1, ou seja, continuam a herdar a função M1 de C1.

    Não poderíamos supor que as classes C2 e C3 realizaram uma implementação própria de M1 (pelo menos não deveriamos). Se a resolução

    for na base do "achômetro" eu poderia muito bem dizer que C2 redefiniu M1 e que C3 preferiu manter a implementação M1 do pai (C1).

    Em minha opinião seria uma questão pra RECURSO!!!