1.
繼承
類名稱= class(父類名稱)
public
<
公共類元素>
private
<
私有類元素>
protected
<
保護類元素>
published
<
可顯類元素>
end;
²tobject
是其他所有類的最終祖先,因此如果類在宣告中沒有指定父類,那預設為tobject
²
如果有構造方法和析構方法,請放置在公共型別中,析構方法後要放override
²
在基類中的方法定義後加有virtual形式時,子類定義同名方法加override,此時稱之為覆蓋。
²保留字inherited
n
後跟乙個成員名稱,表示在封裝了方法的類的直接祖先中搜尋成員之外,還可以表示標準方法的呼叫或對屬性、域的引用。
n反之,只表示對當前定義宣告封裝的方法在所屬類的直接祖先中同名方法的呼叫
2.
虛擬方法與動態方法
加有關鍵字virtual 的方法稱為虛擬方法,關鍵字dynamic的方法稱為動態方法。兩者都可以被覆蓋。
3.
reintroduce再引入
用於防止編譯器關於隱藏先前的虛擬方法給出警告,
你在寫子類時,新宣告了乙個跟父類中已有的方法同名的方法,這樣編譯器將會自動
對父類該方法進行隱藏!當父類中的方法為普通靜態方法時,無所謂的,你只要在子類中直接宣告定義你的同名方法即可,編譯器對於這種隱藏不會有什麼反應!但是,當父類中該方法為虛擬或動態方法時,你在子類中所宣告並定義的同名方法,編譯器將會報警說你隱藏了基類中的同名虛擬方法!所以,假如你確定要這麼做,而又不想讓編譯器進行報警的話,就要用到reintroduce
,說白了,它的用法就是去鎮壓編譯器的報警的!
4.
overload過載方法
(在reintroduce基礎上),該方法過載了繼承得到的方法而沒有對其隱藏,呼叫子類中的方法是根據給出的引數來決定哪個方法被啟用。
5.
抽象類abstract
只有類中有乙個抽象方法,那麼該類就是抽象類。
抽象方法的定義:
procedure[function]
方法名(參數列);virtual;abstract;
說明:
抽象方法的前提該方法必需是乙個虛擬方法,不同之處在於,抽象方法只是定義,並不進行任何實現,而是由子類實現覆蓋的地方進行實現。
6.
屬性
1)
說明:屬性是與物件相關的資料的介面,具有訪問說明符,用來決定如何讀取和修改屬性的資料。
2)定義:
property
屬性名:型別①
[read/資料域/方法/]
②[write/資料域/方法/]
③
[stored/true/false/
方法/]
④[default預設值;]
1.
四部分為可選,如果沒有,表明繼承父類的屬性。
2.有①無②表明該屬性為唯讀
3.有②無①表明該屬性為只寫
4.③表示窗體設計時設定的屬笥值是否儲存在dfm檔案中
5.④初始化資料域,沒有時預設值為0
屬性與變數的關係;
設定屬性,其相當於宣告了乙個公共的變數。屬性是控制項對外發部的介面,而變數是控制項實際執行時屬性訪問資料的地方。
獲得屬性通過定義乙個函式得到相應的反回值,寫屬性通過定義乙個過程對其變數進行賦值。格式如下:
function
讀函式名:非簡單屬性型別
proceture
寫過程名(value:非簡單屬性型別)
Delphi繼承 屬性 過載
1.繼承 類名稱 class 父類名稱 public 公共類元素 private 私有類元素 protected 保護類元素 published 可顯類元素 end tobject 是其他所有類的最終祖先,因此如果類在宣告中沒有指定父類,那預設為tobject 如果有構造方法和析構方法,請放置在公共...
delphi窗體屬性
1 0 none 窗體不僅沒有邊界,而且沒有標題欄 2 1 fixed single 邊界是固定的單線,執行時不能改變窗體大小 3 2 sizable 預設設定,窗體的大小可以在執行時改變 4 3 fixed dialog 固定的對話方塊,大小不能改變 5 4 fixed toolwindow 固定...
繼承和過載
繼承的目的 實現 重用 派生的目的 當新的問題出現原有程式無法解決 或不能完全解決 時,需要對原有程式進行改造 1 當建立乙個類時,您不需要重新編寫新的資料成員和成員函式,只需指定新建的類繼承了乙個已有的類的成員即可。這個已有的類稱為 基類,新建的類稱為 派生類。2 乙個類可以派生自多個類,這意味著...