Considere o código abaixo, escrito na linguagem de programa...
#ifndef _Aluno_H #define _Aluno_H #include “Pessoa.hpp” #include <string> usingnamespacestd; class Aluno: public Pessoa { private: string curso; string semestre; public: Aluno(); stringobtemCurso(); voidconfiguraCurso(); stringobtemSemestre(); voidconfiguraSemestre)(; ); #endif
Sobre o código, assinale a alternativa correta.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Resposta Correta: B - Aluno é subclasse da superclasse Pessoa e herda dela atributos e métodos.
Para compreender a questão e a resposta correta, é essencial ter um conhecimento básico sobre o conceito de herança na programação orientada a objetos, que é um dos pilares fundamentais desse paradigma. Herança é um mecanismo pelo qual uma classe (conhecida como subclasse ou classe derivada) pode herdar atributos e métodos de outra classe (chamada superclasse ou classe base).
No código apresentado, temos a declaração da classe Aluno que herda da classe Pessoa. Isto é indicado pela sintaxe class Aluno : public Pessoa, que estabelece uma relação de herança onde Aluno é a subclasse e Pessoa é a superclasse.
Além disso, é importante notar o uso das diretivas de pré-processamento #ifndef, #define e #endif, que servem para evitar a inclusão múltipla do mesmo arquivo de cabeçalho, o que poderia causar problemas de definição repetida de classes ou funções.
A classe Aluno possui seus próprios atributos privados (curso e semestre) e métodos públicos para obter e configurar esses atributos (obtemCurso, configuraCurso, obtemSemestre e configuraSemestre), além de herdar quaisquer atributos e métodos públicos ou protegidos da classe Pessoa.
As demais opções são incorretas porque:
- A - Inverte erroneamente a relação de herança, colocando Aluno como superclasse.
- C - Inverte erroneamente a relação de herança, além de errar ao dizer que Pessoa herda de Aluno.
- D - Corretamente identifica Pessoa como superclasse, mas erra ao afirmar que ela herda de Aluno, quando na verdade é o contrário.
- E - Incorreto, pois o código claramente estabelece uma relação de herança entre Aluno e Pessoa.
Portanto, a alternativa correta é a B, que corretamente identifica que Aluno é uma subclasse que herda da superclasse Pessoa, obtendo seus atributos e métodos, e isso está em conformidade com os princípios de herança na programação orientada a objetos.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
AJUDA NA FORMATAÇÃO AI QCONCURSO!
class Aluno: public Pessoa {
Significa que a classe Aluno herda métodos e atributos da classe Pessoa, a principio, pois não vemos classe Pessoa.
Vamos as alternativas:
A) Aluno é superclasse da subclasse Pessoa e herda dela atributos e métodos.
Incorreta, aluno é subclasse;
B) Aluno é subclasse da superclasse Pessoa e herda dela atributos e métodos.
Correta, GABARITO DA QUESTÃO
C) Pessoa é subclasse da superclasse Aluno e herda dela atributos e métodos.
Incorreta, pessoa é superclasse de Aluno;
D) Pessoa é superclasse da subclasse Aluno e herda dela atributos e métodos.
Incorreta, Pessoa estende seus atributos e métodos à subclasse Aluno
E) Não existe qualquer relação entre as classes Aluno e Pessoa.
Incorreta, a relação é a de herança;
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo