Inherited/fi

From Lazarus wiki
Jump to navigationJump to search

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