有必要要有virtual,override修飾字嗎?? |
答題得分者是:Justmade
|
chimera
初階會員 發表:62 回覆:78 積分:28 註冊:2003-03-22 發送簡訊給我 |
我實驗了一下,父類別沒有virtual,子類別沒有override, 只要有"inherited 方法名"就等於直接拷貝該父類別方法, 如果沒有"inherited 方法名"就等於覆蓋父類別繼承下來的該方法, 那這樣不就跟父類別有virtual,子類別有override修飾字時的情況一樣了嗎?? 我實驗的三個unit: unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TForm1 = class(TForm) BitBtn1: TBitBtn; procedure BitBtn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses unit2,unit3; {$R *.DFM} procedure TForm1.BitBtn1Click(Sender: TObject); begin test1 := Ttest1.create; test2 := ttest2.create; test1.abc; test2.abc; end; end. unit Unit2; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type Ttest1 = class procedure abc; end; var test1 : ttest1; implementation procedure Ttest1.abc; begin showmessage('test1.abc'); end; end. unit Unit3; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, unit2; type Ttest2 = class(Ttest1) procedure abc; end; var test2 : ttest2; implementation procedure Ttest2.abc; begin inherited abc; showmessage('test2.abc'); end; end.發表人 - chimera 於 2003/06/25 17:19:34 |
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
chimera
初階會員 發表:62 回覆:78 積分:28 註冊:2003-03-22 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |