Questão nº 26

Questão de Tecnologia da Informação · FCC PGE-AM 2022 (nº 26)

FCC2022Técnico em Gestão Procuratorial - Especialidade Engenharia de SoftwareTecnologia da Informação
Gabarito: Bver comentário ↓

Considere este trecho de código em PHP, que não contém erros. A numeração das linhas não faz parte do código.

1  <?php
2   class Imprime {
3      public function printItem($string){
4              echo 'Imprime: ' . $string . PHP_EOL;
5      }
6      public function printPGEAM(){
7              echo ' Procuradoria Geral do Estado do Amazonas' . PHP_EOL;
8      }
9   }
10  class Impressao extends Imprime {
11      public function printItem($string){
12              echo 'Impressao: ' . $string . PHP_EOL;
13      }
14  }
15  $imprime = new Imprime();
16  $impressao = new Impressao();
17  $imprime->printItem('Engenharia de Software');
18  $imprime->printPGEAM();
19  $impressao->printItem('Engenharia de Software');
20  $impressao->printPGEAM();
21  ?>

Considerando os fundamentos da Orientação a Objetos e o código acima, é correto afirmar:

Resposta comentada

Gabarito Alternativa B

A herança é um conceito fundamental na Orientação a Objetos que permite que uma classe (chamada subclasse ou filha) reutilize e estenda o comportamento de outra classe (chamada superclasse ou pai), herdando seus atributos e métodos.

(A) Incorreta: A saída da linha 17 ($imprime->printItem(...)) é "Imprime: Engenharia de Software", enquanto a saída da linha 19 ($impressao->printItem(...)) é "Impressao: Engenharia de Software". Elas são diferentes porque o método printItem() foi sobrescrito (override) na classe Impressao.
(B) Correta: Este é um princípio básico da herança em programação orientada a objetos. Métodos e propriedades declarados como public na classe pai são automaticamente herdados e acessíveis na subclasse.
(C) Incorreta: A saída da linha 18 ($imprime->printPGEAM()) é " Procuradoria Geral do Estado do Amazonas" e a saída da linha 20 ($impressao->printPGEAM()) também é " Procuradoria Geral do Estado do Amazonas". Elas são idênticas porque o método printPGEAM() não foi sobrescrito na classe Impressao, sendo executado exatamente como herdado da classe Imprime. Armadilha da banca: Esta alternativa tenta confundir, sugerindo que todos os métodos herdados teriam um comportamento diferente, mesmo sem sobrescrita.
(D) Incorreta: O método construtor em PHP é sempre nomeado __construct(). printPGEAM() é um método público comum da classe Imprime, não o construtor.
(E) Incorreta: Pelo contrário, os métodos públicos (e também os protegidos) de uma classe pai são acessíveis e herdados por uma classe filha, o que é a base da reutilização de código na herança.

Fonte: FCC PGE-AM 2022 Técnico em Gestão Procuratorial - Especialidade Engenharia de Software (Caderno Tipo 001). 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