Pular para o conteúdo principal

Questão de Arquitetura de Software — Ciclo PDCA (Plan, Do, Check, Act) — INSTITUTO AOCP 2016

Arquitetura de SoftwareCiclo PDCA (Plan, Do, Check, Act)
Código
qq215805
Banca
INSTITUTO AOCP
Órgão
Câmara de Rio Branco - AC
Ano
2016
Nível
Superior
Cargo
Analista Legislativo - Manutenção
Considere um cenário em que é necessário sobrescrever o método “validar” da classe “TPessoa” a partir da classe “TCliente”, a qual herda a classe “TPessoa”, e que essas classes foram implementadas na linguagem Delphi. O que acontecerá ao se compilar um programa que utiliza as classes “TCliente” e “TPessoa”, conforme o código descrito a seguir?unit Unit3;interfacetypeTPessoa = classpublicprocedure Validar(Id :Integer);end;TCliente = class(TPessoa)publicprocedure Validar(Id :Integer); override;end;implementation{ TCliente }procedure TCliente.Validar(Id: Integer);begininherited;{alterações necessárias implementadas aqui}end;{ TPessoa }procedure TPessoa.Validar(Id: Integer);begin{validação na classe pessoa}end;end.
  1. AOcorrerá um erro na compilação do programa, porque o método validar da classe “TPessoa” não é marcado com um dos modificadores “virtual” ou “dynamic”.
  2. BNão ocorrerá erro na compilação do programa, mas, ao se utilizar a classe “TPessoa” durante a execução do programa ocorrerá um erro de AbstractClass.
  3. CO programa compilará sem erros, pois as classes foram implementadas corretamente.
  4. DO programa compilará sem erros, mas somente o método validar da classe “TPessoa” ocasionará erro ao ser executado.
  5. EO programa compilará sem erros, mas somente o método validar da classe “TCliente” ocasionará erro ao ser executado.
Revelar gabarito e comentário

GabaritoA — Ocorrerá um erro na compilação do programa, porque o método validar da classe “TPessoa” não é marcado com um dos modificadores “virtual” ou “dynamic”.

Link permanente: /questoes/qq215805