1. 程式人生 > >談談Delphi中的類和物件3---抽象類和它的例項

談談Delphi中的類和物件3---抽象類和它的例項

---恢復內容開始---

四、抽象類和它的例項

  Delphi中有一個類稱為是抽象類,你不能天真的直接為它建立一個例項,如

var
    StrLst: TString;
begin
    StrLst:= TString.Create;
    StrLst.Add('I love China');
    StrLst.Free;
end;

   這是不對的,因為TString是一個抽象類。

  那麼怎麼為這樣的抽象類構造例項呢?答案就是藉助它的非抽象子類。我們知道TString有一個TStringList的非抽象子類。所以可以這樣操作

var

     StrLst: TString;     //還是可以通過抽象類來進行宣告      //或者直接用 StrLst:TStringList;    不過前者更好一些 begin      StrLst:= TStringList . Create;     //但是建立具體的物件就必須使用抽象類的非抽象子類          
//而且這樣建立的例項在記憶體中是其子類的結構,           //儘管在var裡面使用抽象類宣告的,但是具體的create是其非抽象子類      StrLst . Add( 'I love China' );      StrLst . Free; end ;

---恢復內容結束---