SóProvas


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

Considere que a classe Pessoa possui 3 métodos que podem ser aplicados aos seus objetos: cadastrar, alterar e excluir. Considere que Aluno e Professor são classes derivadas da classe Pessoa e, por isso, herdam os métodos cadastrar, alterar e excluir, mas estes métodos são sobrescritos na classe Aluno e Professor com implementações bastante distintas, em função dos dados associados a cada um deles.


O exemplo ilustra o conceito de

Alternativas
Comentários
  • Na programação orientada a objetos, o polimorfismo permite que referências de tipos de classes mais abstratas representem o comportamento das classes concretas que referenciam. Assim, é possível tratar vários tipos de maneira homogênea (através da interface do tipo mais abstrato).

    O polimorfismo é caracterizado quando duas ou mais classes distintas tem métodos de mesmo nome, de forma que uma função possa utilizar um objeto de qualquer uma das classes polimórficas, sem necessidade de tratar de forma diferenciada conforme a classe do objeto.
    Uma das formas de implementar o polimorfismo é através de uma classe abstrata, cujos métodos são declarados mas não são definidos, e através de classes que herdam os métodos desta classe abstrata.

    http://pt.wikipedia.org/wiki/Polimorfismo
  • Polimorfismo é a habilidade pela qual uma única operação ou nome de atributo pode ser definido em mais de uma classe e assumir implementações diferentes em cada uma dessas;
     
    1)Estático: sobrecarregados(overloading)
    -- nome igual / argumentos diferentes;
    --a decisão do método a ser chamado é tomada em tempo de compilação de acordo com os argumentos passados;
     
    2)Dinâmico: sobrescritos(overriding)
    -- associado ao conceito de herança;
    --nome e argumentos iguais;
    -- subclasse redefine método da superclasse;
    -- a decisão do método a ser chamado é tomada em tempo de execução.

    obs: na sobrecarga o nome do método é igual, mas há alguma diferença no tipo ou quantidade de atributos entre os métodos. Isso  vai definir qual método será chamado.
  • a) Falso! Hereditariedade ocorre quando uma classe herda atributos e métodos de outra classe. Nessa questão esse problema ocorre, porém o foco da questão não é esse, mas sim o dato dos três métodos poderem ser reescritos.
    b) Polimorfismo ocorre quando subclasse reescrevem o algoritmo dos métodos herdados da subclasse. Portanto essa afirmação esta correta.
    c) Falso! Encapsulamento ocorre quando uma classe oculta métodos e atributos que são relevantes apenas para o funcionamento interno da classe, provendo assim transparência.
    d) Falso! Essa afirmação provavelmente não trata-se de classes abstratas mas sim da abstração de informações, que nesse caso é provida pelo encapsulamento.
    e) Falso! Reusabilidade é a possibilidade de reaproveitar trechos de código.
  • Errei essa questão na prova, disse que a resposta é Herança.

    Porém discordo quando se fala em Polimorfismo. Pois não se fala nada sobre o processo de execução, que o comportamente de uma será escolhido, que as classes serão utilizadas no mesmo ccódigo, etc. que é justamente no momento que ocorre o polimorfismo. Para mim a questão apenas disse que existe herança em duas classes.
  • Existem 4 tipos de polimorfismo: de inclusão, sobreposição, paramétrico e de sobrecarga. A questão descreve uma utilização do polimorfismo de sobreposição.

  • Quando eles herdaram os metodos, deveriam a principio fazer a mesma coisa que a classe pessoa. porém, como tiveram implementações distintas houve overriding, uma propriedade do polimorfismo