深入類中的方法 8 抽象方法與抽象類

2022-08-01 21:03:17 字數 1888 閱讀 5310

//

抽象方法類似與介面; 在沒有介面的年代delphi 是用抽象方法來模擬介面的; 我想它最終會被介面替代.

tmyclass =class(tobject)
procedureproc1;virtual;abstract

functionfun:string;dynamic;abstract; 

end;

var
list: tstrings;

i: integer;

begin
list := tstringlist.create;

fori := 0to99dolist.add(inttostr(i));

memo1.lines := list;

list.free;

end;

//

這是個錯誤的例子

var
list: tstringlist; 

begin
list := tstringlist.create;

list := memo1.lines; 

list.free;

end;

//

在delphi 7 及以前的版本中, 我們是通過檢視乙個類是不是有抽象方法來判斷是不是抽象類的.

tbass =classabstract(tobject)
procedureproc;

functionfun:string;virtual;abstract;

end;

tbass =classabstract(tobject)
procedureproc;

functionfun:string;

end;

tbass =class(tobject)
procedureproc;

functionfun:string;

end;

深入類中的方法(8) 抽象方法與抽象類

抽象方法類似與介面 在沒有介面的年代 delphi 是用抽象方法來模擬介面的 我想它最終會被介面替代.tmyclass class tobject procedureproc1 virtual abstract functionfun string dynamic abstract end var ...

抽象類與抽象方法

有些類注定是不能被初始化的,即不能被new 設想一下,乙個animal類下有很多子類,dog,cat,lion等,這些子類都可以被例項化,但是animal如果被例項化後會變成什麼樣?會有什麼特徵?這是難以想象的,因此像animal這樣的父類就不能例項化,我們迫切需要有一種類,只能例項化其子類物件而本...

抽象類與抽象方法

l 抽象類與抽象方法由abstract修飾 l abstract的使用注意 抽象方法沒有方法體 抽象成員只能存在於抽象類中 抽象類可以有非抽象成員 抽象類的派生類必須實現抽象方法體 抽象類只能用作基類,無法例項化 static void main string args public abstrac...