Para responder à questão, analise o código a seguir, escrito em uma linguagem de programação que utiliza o paradigma de orientação a objetos:
Com base na análise do código e nos seus conhecimentos sobre programação orientada a objetos, selecione a alternativa correta.
As classes Cachorro e Gato herdam os atributos nome e idade da classe Animal, mas não herdam o método emitirSom().
O código demonstra o conceito de abstração, pois a classe Animal define um método abstrato emitirSom().
A classe Animal é uma subclasse das classes Cachorro e Gato.
O código demonstra o conceito de encapsulamento, pois os atributos nome e idade são declarados como públicos.
O método emitirSom() nas classes Cachorro e Gato sobrescreve o método emitirSom() da classe Animal, demonstrando o conceito de polimorfismo.