Questão nº 35

Questão de Tecnologia da Informação · FGV CVM 2024 (nº 35)

FGV2024Analista CVM - TI Sistemas e Desenvolvimento (Perfil 8)Tecnologia da Informação
Gabarito: Aver comentário ↓

Observe as seguintes classes, definidas na sintaxe do PHP.

class SaidaSimples {
  protected $texto;
  public function __construct($texto){
    $this->texto = $texto;}
  public function render(){
    echo($this->texto);}
}
class SaidaNegrito extends SaidaSimples{
  public function render(){
    echo("<b>");
    #COMANDO
    echo("</b>");
  }
}

Se o objetivo de SaidaNegrito é imprimir o texto herdado de SaidaSimples na página, entre as etiquetas de formatação, o comentário #COMANDO deve ser substituído por:

Resposta comentada

Gabarito Alternativa A

Em programação orientada a objetos, quando uma classe filha (que herda de outra) precisa usar a funcionalidade de um método que existe na sua classe pai (a classe da qual ela herda), mas que foi sobrescrito na filha, ela usa a palavra-chave parent:: para se referir ao método do pai.

  • (A) Correta: parent::render(); Esta é a forma correta em PHP de chamar um método da classe pai (SaidaSimples) a partir de um método sobrescrito na classe filha (SaidaNegrito). Isso permite que o método render() da classe pai seja executado, imprimindo o $texto, e então o resultado é envolvido pelas tags <b> e </b> adicionadas pela classe filha.
  • (B) Incorreta: $super->render(); A palavra-chave $super não existe em PHP para referenciar a classe pai; é comum em linguagens como Java.
  • (C) Incorreta: SaidaSimples->render(); Esta sintaxe está incorreta para chamar um método de instância de uma classe pai. Mesmo que fosse SaidaSimples::render(), isso faria uma chamada estática e não passaria o contexto do objeto atual ($this) para o método pai, o que é necessário para acessar $this->texto. A armadilha aqui é que parece uma forma lógica de referenciar a classe, mas não funciona como esperado para métodos de instância em um contexto de herança.
  • (D) Incorreta: base::render(); A palavra-chave base:: não existe em PHP para referenciar a classe pai; é comum em linguagens como C#.
  • (E) Incorreta: $inherited->render(); Não existe uma palavra-chave ou variável $inherited em PHP para referenciar a classe pai ou seus membros.

Fonte: FGV CVM 2024 Analista CVM - TI Sistemas e Desenvolvimento (Perfil 8) (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho