Questão de Programação — Linguagens de programação — FUNDATEC 2025
ProgramaçãoLinguagens de programação
- Código
- qg472863
- Banca
- FUNDATEC
- Órgão
- IF Sertão - PE
- Ano
- 2025
- Nível
- Superior
- Cargo
- Analista de Tecnologia da Informação
Considere um sistema em Python com uma superclasse Funcionario e uma subclasse Gerente. A classe Funcionario possui um atributo privativo __salario_base, definido com dois sublinhados para restringir o acesso, e um método público calcular_bonus(). A classe Gerente herda de Funcionario e reescreve o método calcular_bonus() para adicionar um bônus de gestão. Com base nos princípios de encapsulamento, herança e polimorfismo, conforme aplicados em Python, assinale a alternativa que descreve corretamente a interação entre esses conceitos.
- AAtravés da herança, a classe Gerente obtém acesso direto e irrestrito ao atributo __salario_base de Funcionario para seus cálculos, enquanto o polimorfismo é o mecanismo que torna a reescrita do método calcular_bonus() opcional.
- BO encapsulamento é o que permite que um objeto Gerente seja tratado como um Funcionario em coleções de dados. O polimorfismo garante que o atributo __salario_base seja inacessível, e a herança possibilita a chamada ao método calcular_bonus().
- CO polimorfismo se manifesta quando calcular_bonus() é invocado em um objeto Gerente, executando a versão reescrita. A herança permite a Gerente utilizar métodos públicos de Funcionario, mas o encapsulamento (via name mangling) impede o acesso direto ao __salario_base da superclasse, exigindo o uso de um método público ou do super() para interagir com ele.
- DO método calcular_bonus() em Gerente utiliza o polimorfismo para invocar a implementação da superclasse com super(). O encapsulamento de __salario_base é reforçado pela herança, que permite sua modificação direta apenas na subclasse Gerente.
- EA herança exige que a classe Gerente reescreva todos os métodos públicos de Funcionario. O encapsulamento do __salario_base é intencionalmente quebrado pelo polimorfismo, que permite ao método reescrito calcular_bonus() acessar diretamente qualquer atributo da superclasse.