初探Object Pascal的類(九)

2021-09-08 21:39:25 字數 1347 閱讀 1283

繼承(inheritance)

在object pascal中,類的最強大功能之一就是可以通過繼承得到擴充套件。

繼承(inheritance)是指取乙個現有的類,通過由它派生新類來增加功能。

開始取得類稱為基類(base class)或者祖先類(ancestor class),新建立的類稱為派生類(derived class)。

為了說明這些概念,我們再次回到tairplane類。眾所周知,在民用和軍用領域有很大的區別,為了表示一架軍用飛機,可以從tairplane中派生乙個類,並增加一些功能:

tmilitaryplane = class(tairplane)  

private

themission: tmission;

function getstatus(var statusstring: string): integer; override;

constructor create(aname: string; atype: integer);

protected

procedure takeoff(dir: integer); override;

procedure land; override;

procedure attack; virtual;

procedure setmission; virtual;

end;

tairplane所有內容,tmilitaryplane都有,此外它還增加了一些新內容。注意類宣告的第1行,關鍵字class後面括弧裡的類名用於指示編譯器此類是從另一類派生而來,被派生的類就是基類,在這裡,基類是tairplane類。

note

當從另乙個類派生類時,除了增加了一些新功能外,新類繼承了基類的所有功能。可以給新類增加欄位和方法,但不能刪除基類所提供的任何內容。

private段中,有一行宣告了tmission類例項,在此沒有給出宣告,但它封裝了軍用飛機所要處理的每一項軍務:瞄準、導航、進出口高度和航向等等。這也說明作為另乙個類的例項欄位的用法,實際上,在delphi中具體程式設計時,會看到很多。

繼承(tmilitaryplane).rar

初探Object Pascal的類(四)

類的析構函式 析構函式也是一種特殊的方法,此方法在物件消失前會被自動呼叫。析構函式可以看成是建構函式的對立面,它通常用來釋放類所佔的記憶體,或者做一些清除工作。乙個類不一定必須要有乙個析構函式,因為基本的類析構函式可以代替。像建構函式一樣,析構函式也沒有返回值。儘管類可以有多重析構函式,但它不具有一...

教程 ObjectPascal快速上手筆記01

objectpascal快速入門筆記01 注釋 圓括號 星號注釋 塊注釋 雙斜槓注釋 行注釋 不同形式注釋可巢狀使用。物件命名 對大小寫不敏感 不能帶有空格 第乙個字母盡量不要帶t 類 f 類中私有成員 i 介面 識別符號 ascii碼字符集 任意長不帶空格的字串 第一字元必須是字母或下劃線 變數宣...

Object Pascal與C 竟然是相同的!

object pascal與c 的相同之處!竟然這麼相同,包括相似的程式結構 而且,object pascal的語法竟然比c 還嚴格 怪不得borland能把object pascal和c 能混用 我看到以前有人說要把delphi中的vcl用c來寫,其實根本沒這個必要,這個vcl很容易地就可以轉成用...