SóProvas


ID
4834102
Banca
Exército
Órgão
EsFCEx
Ano
2020
Provas
Disciplina
Programação
Assuntos

Considere a execução do código C++ a seguir:


#include <iostream>

class Animal {

public:

virtual void falar() = 0;

virtual ~Animal() = default;

};


class Gato final : public Animal {

public:

void falar(){

std::cout << "Miau\n";

}

};


class Cao final : public Animal {

public:

void falar(){

std::cout << "Auau\n";

}

};


int main(){

Animal *a;


a = new Gato;

a->falar();

delete a;


a = new Cao;

a->falar();

delete a;

}


Na programação orientada a objetos, a capacidade de a classe Animal se comportar de forma diferente em cada uma das invocações do método falar(), é chamada de:




Alternativas
Comentários
  • O principal conceito do polimorfismo é a partir da superclasse invocar os mesmo métodos com as mesma assinaturas em classes derivadas, mas com comportamentos diferentes.

    Resposta correta Letra (D)

  • Trata-se de uma questão sobre orientação a objetos.

    O comando da questão pergunta qual a propriedade que permite a classe animal se comportar de forma diferente a cada invocação do método falar().

    Vamos para as alternativas:

    A) Errada. Encapsulamento é a propriedade pela qual um objeto esconde (encapsula) sua implementação interna, deixando conhecida apenas sua interface de comunicação.

    B) Errada. Sobrecarga de método é a técnica que envolve criar vários métodos com o mesmo nome na mesma classe e implementações diferentes. A decisão de qual método seria executado seria feita verificando os parâmetros passados. Não é o caso dessa questão, visto que temos o mesmo método em classes diferentes, e eles são idênticos, inclusive os parâmetros esperados, dessa forma não se tratam de sobrecarga.

    C) Errada. Abstração é um conceito da orientação a objetos que trata da capacidade de extrair dos atores/itens do contexto suas principais características, criando dessa forma, objetos.

    D) Certa. Quando temos duas classes que herdam de um mesmo pai,  e cada uma delas implementa um método de sua sorte, e em tempo de execução o programa decide qual implementação será usada conforme o tipo da classe filha, temos o polimorfismo.

    E) Errada. Herança é o fato de uma classe filha herdar as características da classe pai. Isso, por si só, não garante a capacidade de se utilizar diferentes implementações do mesmo método.


    Gabarito do Professor: Letra D.
  • A resposta já está no enunciado da questão.

     a capacidade de a classe Animal se comportar de forma diferente em cada uma das invocações do método -> Conceito perfeito de polimorfismo