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

2022-07-16 01:33:15 字數 1593 閱讀 1108

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

tmyclass =class(tobject)

procedureproc1;virtual;abstract;     

functionfun:string;dynamic;abstract;

end;

var

list: tstrings;

i: integer;

begin

list := tstringlist.create;

fori := 0

to99

dolist.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 varli...

抽象類與抽象方法

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

抽象類與抽象方法

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