Fórum POO #239290
23/06/2004
0
Estou em uma empresa que está invenstindo na tecnologia POO. Gostaria de saber se alguém poderia me ajudar em algumas pequenas dúvidas.
O que seria Inherited?
Obrigado desde já....
Julien
Julien
Curtir tópico
+ 0Posts
23/06/2004
Paulo_amorim
a palavra reservada [b:d1e232a2d4]inherited[/b:d1e232a2d4] significa que o será executado código do Pai da classe onde este método está sendo implementado. Por exemplo:
Você cria uma classe derivada de TComponent, e cria seu construtor
constructor Create(AOwner: TComponent); override;
Esse override significa que vc já tem um Create no pai desta classe (ou seja, em TComponent). Assim, antes de vc construir sua classe, vc tem que chamar o construtor do TComponent:
constructor Create(AOwner: TComponent); begin inherited; end;
Esse inherited garante que vc está chamando o Create do TComponent, passando como parâmetro o seu ´AOwner´
Espero que fique claro
Ate+
Gostei + 0
23/06/2004
Julien
´a palavra reservada inherited significa que o será executado código do Pai da classe onde este método está sendo implementado....´
Gostei + 0
23/06/2004
Paulo_amorim
Suponhamos que vc tem uma classe TClasse1 e uma TClasse2, filha de TClasse1
vc cria o método [i:23b8a00e46]FazAlgo[/i:23b8a00e46] na TClasse1...
procedure TClasse1.FazAlgo; begin //aqui ele faz uma coisa qualquer, chamemos de AAA end;
Agora, na TClasse2 você também quer esse método FazAlgo, só que ele tem que fazer algo mais!
Então vc declara:
procedure FazAlgo; override;
e na implementação vc faz:
procedure TClasse2.FazAlgo; begin inherited; //faz MAIS ALGUMA coisa, chamemos de BBB end;
Aqui está a diferença: se vc não tivesse colocado o [i:23b8a00e46]inherited[/i:23b8a00e46] no FazAlgo, ele soh executaria ´BBB´; como vc colocou o inherited, ele faz primeiro ´AAA´ e depois ´BBB´
Espero que ajude
Até+
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)