Difference between revisions of "Inherited/fi"

From Free Pascal wiki
Jump to navigationJump to search
m (Fixed syntax highlighting)
 
Line 3: Line 3:
  
 
Ylikirjoitetussa virtuaali[[Method/fi|metodissa]] on usein tarpeen kutsua virtuaalimenetelmän vanhemman [[Class/fi|luokan]] toteutusta. Tämä voidaan tehdä  
 
Ylikirjoitetussa virtuaali[[Method/fi|metodissa]] on usein tarpeen kutsua virtuaalimenetelmän vanhemman [[Class/fi|luokan]] toteutusta. Tämä voidaan tehdä  
<syntaxhighlight lang="pascal" enclose="none">inherited</syntaxhighlight> [[Reserved word/fi|varatulla sanalla]]. Samoin <syntaxhighlight lang="pascal" enclose="none">inherited</syntaxhighlight>-[[Keyword/fi|avainsanaa]] voidaan käyttää missä tahansa vanhemman luokan metodissa.
+
<syntaxhighlight lang="pascal" inline>inherited</syntaxhighlight> [[Reserved word/fi|varatulla sanalla]]. Samoin <syntaxhighlight lang="pascal" inline>inherited</syntaxhighlight>-[[Keyword/fi|avainsanaa]] voidaan käyttää missä tahansa vanhemman luokan metodissa.
  
 
Tämä tapaus on yksinkertaisin:
 
Tämä tapaus on yksinkertaisin:
Line 23: Line 23:
 
== Rakentajien ja purkajien tapaukset ==
 
== Rakentajien ja purkajien tapaukset ==
  
[[Constructor/fi|Rakentaja <syntaxhighlight lang="pascal" enclose="none">constructor</syntaxhighlight>]], esimerkki 1 :
+
[[Constructor/fi|Rakentaja <syntaxhighlight lang="pascal" inline>constructor</syntaxhighlight>]], esimerkki 1 :
 
<syntaxhighlight lang=pascal>
 
<syntaxhighlight lang=pascal>
 
   ...
 
   ...
Line 33: Line 33:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Rakentaja eli <syntaxhighlight lang="pascal" enclose="none">constructor</syntaxhighlight> esimerkki 2 :
+
Rakentaja eli <syntaxhighlight lang="pascal" inline>constructor</syntaxhighlight> esimerkki 2 :
 
<syntaxhighlight lang=pascal>
 
<syntaxhighlight lang=pascal>
 
   ...
 
   ...
Line 44: Line 44:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
[[Destructor/fi|Purkaja <syntaxhighlight lang="pascal" enclose="none">destructor</syntaxhighlight>]] esimerkki 3 :
+
[[Destructor/fi|Purkaja <syntaxhighlight lang="pascal" inline>destructor</syntaxhighlight>]] esimerkki 3 :
 
<syntaxhighlight lang=pascal>
 
<syntaxhighlight lang=pascal>
 
   TTest.Destroy;
 
   TTest.Destroy;

Latest revision as of 17:27, 6 August 2022

Deutsch (de) English (en) suomi (fi) français (fr) русский (ru)


Ylikirjoitetussa virtuaalimetodissa on usein tarpeen kutsua virtuaalimenetelmän vanhemman luokan toteutusta. Tämä voidaan tehdä inherited varatulla sanalla. Samoin inherited-avainsanaa voidaan käyttää missä tahansa vanhemman luokan metodissa.

Tämä tapaus on yksinkertaisin:


Type  
  TMyClass = Class(TComponent)  
    Constructor Create(AOwner : TComponent); override;  
  end; 

Constructor TMyClass.Create(AOwner : TComponent);  
begin  
  Inherited;  
  // tehdään lisää asioita  
end;

Rakentajien ja purkajien tapaukset

Rakentaja constructor, esimerkki 1 :

  ...
  TTest.Create;
  begin
    inherited; // Aina  rakentajien alussa. Aloittaa vanhemman luokan rakentamisen 
    ...
  end;

Rakentaja eli constructor esimerkki 2 :

  ...
  TTest.Create(...);
  begin
    Inherited Create(...); // Aina  rakentajien alussa. Aloittaa vanhemman luokan rakentamisen 
    ...
  end;
  ...

Purkaja destructor esimerkki 3 :

  TTest.Destroy;
  begin
    ...
    inherited;  // Aina purkajan lopussa ja aloittaa vanhemman luokan purkajan
  end;
  ...