TBass = class PRocedure alert; virtual; {加上 virtual 指示字, 說明這個方法可能會被修改(或叫覆蓋)} {這種方法叫虛方法} end;2、override 重寫 修改父類的同名方法
TChild1 = class(TBass) procedure alert; override; {override 表示修改父類的同名方法} end;3、overload 重載父類同名不同參的函數
重載就是在不改變繼承過來的方法的基礎上重新添加一個方法名字一樣,但參數或返回值是不一樣的。TBass = class procedure Proc; virtual; function Fun(x,y: Integer): string; end;TChild4 = class(TBass) procedure Proc(Astring:string); overload;//同名不同參的函數 end;4、inherited
inherited 就是調用父類方法的一個特殊命令;一般與override 配合使用
類的構造函數constructor TSeekMarkShape.Create;begin inherited;//先構造父類 MarkImage := nil;end;類的析構函數
destructor TSeekMarkShape.Destroy;begin FreeAndNil(MarkImage);//先析構自己 inherited;end;5、class function
class function 不需要實例化就可以使用
6、var 、out和const
無任何修飾符時,是形參傳遞,函數中會創建一份新的參數。大數據參數時,不建議這樣傳遞參數var 是地址傳遞,會修改原有的變量out傳遞給過程的實際參數不必進行初始化,out也可以認為是地址傳遞Const修飾的參數傳入之后不允許修改,如果在過程中修改參數會報錯詳細可參考http://www.cnblogs.com/echomyecho/archive/2012/03/04/2379077.html
新聞熱點
疑難解答
圖片精選