Imagem de fundo

Em Programação Orientada a Objetos, o encapsulamento protege o estado interno de um obj...

Em Programação Orientada a Objetos, o encapsulamento protege o estado interno de um objeto e define como ele pode ser acessado/modificado. Já a herança permite criar classes derivadas a partir de classes base, promovendo reuso e especialização. Dentro desse assunto, considere o trecho de código em Python, usado para modelar pessoas de uma escola.


Imagem associada para resolução da questão


Assinale a alternativa correta sobre o acesso ao atributo “__nome” e a herança entre as classes.


A

A herança só ocorre se “Aluno” declarar novamente o método “get_nome”; sem isso, objetos de “Aluno” não possuem “get_nome”.


B

O atributo “__nome” é público e pode ser acessado diretamente por “aluno.__nome” sem restrições, pois Python não tem encapsulamento.


C

A chamada “super().__init__(nome)” é inválida em Python; para herdar, corretamente, é necessário repetir todo o código do construtor de “Pessoa” dentro de “Aluno”.


D

O atributo “__nome” pode ser acessado por “Aluno” como “self.__nome” dentro de “Aluno”, pois a herança permite que subclasses utilizem diretamente os atributos definidos na classe base.


E

O atributo “__nome” está encapsulado na classe “Pessoa” e deve ser acessado por “get_nome()”; “Aluno” herda de “Pessoa” e reutiliza a inicialização do nome via “super().__init__(nome)”.