談談Delphi中的類和物件3---抽象類和它的例項
阿新 • • 發佈:2018-12-15
---恢復內容開始---
四、抽象類和它的例項
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
;
---恢復內容結束---