

Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
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;
interface
type
TPessoa = class
public
procedure Validar(Id :Integer);
end;
TCliente = class(TPessoa)
public
procedure Validar(Id :Integer); override;
end;
implementation
{ TCliente }
procedure TCliente.Validar(Id: Integer);
begin
inherited;
{alterações necessárias implementadas aqui}
end;
{ TPessoa }
procedure TPessoa.Validar(Id: Integer);
begin
{validação na classe pessoa}
end;
end.
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”.
Nã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.
O programa compilará sem erros, pois as classes foram implementadas corretamente.
O programa compilará sem erros, mas somente o método validar da classe “TPessoa” ocasionará erro ao ser executado.
O programa compilará sem erros, mas somente o método validar da classe “TCliente” ocasionará erro ao ser executado.