Pular para o conteúdo principal

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.
  1. 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.
  2. 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().
  3. 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.
  4. 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.
  5. 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.
Revelar gabarito e comentário

GabaritoC — O 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.

Link permanente: /questoes/qg472863