Imagem de fundo

Considere um cenário em que é necessário sobrescrever 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;


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.



A

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”.


B

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.


C

O programa compilará sem erros, pois as classes foram implementadas corretamente.


D

O programa compilará sem erros, mas somente o método validar da classe “TPessoa” ocasionará erro ao ser executado.


E

O programa compilará sem erros, mas somente o método validar da classe “TCliente” ocasionará erro ao ser executado.