O que vem a ser inherited ??
Ólá pessoal, gostaria de saber o que vem a ser inherited... vejo isso toda hora nos sistemas.. e não sei pra que serve :D
desde ja agradeco
[]s
desde ja agradeco
[]s
Titanius
Curtidas 0
Respostas
Marco Salles
07/05/2005
Normalmente existem duas maneiras de Soprepor um método.
:arrow: Neste segundo caso , voce usa a palavra Chave [b:0614653148]Inherited[/b:0614653148]
Vamos ver um exemplo:
:arrow: Vamos definir agora uma SubClasse Com um método Sopreposto
;
Podemos sobrepor o Método Mensagem na Classe filha de dois modos diferentes
a) Substituindo o Método da Classe ancestral Por uma nova versão
B)acrescentar alguns códigos no método ja existente
Neste segundo caso , voce usa a palavra Chave Inherited
E qual a diferença da Chamada dos dois métodos da Calsse filha :?: :?:
:arrow: Na [b:0614653148]execuçaõ [/b:0614653148], aparecerá sempre aparecerá a Mensagem [color=darkred:0614653148][b:0614653148]Ola[/b:0614653148][/color:0614653148] Seguida Da mesagem [color=darkred:0614653148][b:0614653148]Apareceu Ola[/b:0614653148][/color:0614653148]
:arrow: Na execução nenhuma ,voce não ira perceber diferenças...
Na implementação da subclasse , quando voce estiver Sobrepondo este método , usar a palavra Chave Inherited fica mais suave... :wink: Imagine , que o método Mensagem da Classe TPai seje muito Grande
[b:0614653148]Eu não sei , em termos de compilaçõs , se usar a palavra chave Inherite ou copiar todo o método da Classe pai , se ha ganhos , de performace ou no tamanho do executável na geração do código da Subclasse... Uma coisa é certa. Dependendo do tamanho do código , ficar reescrevendo código Quase identicos , parece Burrice[/b:0614653148]
[color=red:0614653148][b:0614653148]Conclusão .. Usando a palavra Inherited , o Método Da Calsse pai é Chamado...[/b:0614653148][/color:0614653148]
a) Substituindo o Método da Classe ancestral Por uma nova versão b)A Outra maneira e acrescentar alguns códigos no método ja existente
:arrow: Neste segundo caso , voce usa a palavra Chave [b:0614653148]Inherited[/b:0614653148]
Vamos ver um exemplo:
Type TPai = Class public procedure Mensagem;Virtual; end;
Procedre TPai.Mensagem; begin Showmessage(´OLA´); end;
:arrow: Vamos definir agora uma SubClasse Com um método Sopreposto
Type TFilha = Class (TPai) public Procedure Mensagem;Overload; end
Podemos sobrepor o Método Mensagem na Classe filha de dois modos diferentes
a) Substituindo o Método da Classe ancestral Por uma nova versão
Procedure TFilha.Mensagem; begin Showmessage(´OLA´); Showmessage(´Apareceu OlA´); end;
B)acrescentar alguns códigos no método ja existente
Neste segundo caso , voce usa a palavra Chave Inherited
Procedure TFilha.Mensagem; begin Inherited; //Chama o Método da Classe pai Showmessage(´Apareceu OlA´); end;
E qual a diferença da Chamada dos dois métodos da Calsse filha :?: :?:
var obj:TFilha begin obj.Create; Obj.Mensagem; ObjFree; end;
:arrow: Na [b:0614653148]execuçaõ [/b:0614653148], aparecerá sempre aparecerá a Mensagem [color=darkred:0614653148][b:0614653148]Ola[/b:0614653148][/color:0614653148] Seguida Da mesagem [color=darkred:0614653148][b:0614653148]Apareceu Ola[/b:0614653148][/color:0614653148]
:arrow: Na execução nenhuma ,voce não ira perceber diferenças...
Na implementação da subclasse , quando voce estiver Sobrepondo este método , usar a palavra Chave Inherited fica mais suave... :wink: Imagine , que o método Mensagem da Classe TPai seje muito Grande
[b:0614653148]Eu não sei , em termos de compilaçõs , se usar a palavra chave Inherite ou copiar todo o método da Classe pai , se ha ganhos , de performace ou no tamanho do executável na geração do código da Subclasse... Uma coisa é certa. Dependendo do tamanho do código , ficar reescrevendo código Quase identicos , parece Burrice[/b:0614653148]
[color=red:0614653148][b:0614653148]Conclusão .. Usando a palavra Inherited , o Método Da Calsse pai é Chamado...[/b:0614653148][/color:0614653148]
GOSTEI 0
Titanius
07/05/2005
Valeu pela otima explicacao :D
[]s
[]s
GOSTEI 0