

Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
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:
Encapsulamento.
Sobrecarga.
Abstração.
Polimorfismo.
Herança.