菜鳥入門之淺談函式過載和多型的區別 (轉)

worldblog發表於2007-12-10
菜鳥入門之淺談函式過載和多型的區別 (轉)[@more@]

過載是和多型不一樣的,
函式過載的例子如下:
function Foo(i:Integer):string;overload;
function Foo(s:string):string;overload;
透過傳不同的引數,選擇不同函式執行。

而多型是透過把子類賦給父類物件(大逆不道?!:)),
讓父類物件具有子類物件的方法,例子表示式如下:
TParent=class(T)
procedure Draw;virtual;
end;

TChild=class(TParent)
procedure Draw;overr;
procedure ShowHierarchy;virtual;
end;

Parent:=Child;

Parent.Draw;//執行子類的Draw;

這就是我們為什麼總是看見sender:TObject的引數,
就是把子類物件如1個Button賦給父類(Tobject)物件的結果。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990992/,如需轉載,請註明出處,否則將追究法律責任。

相關文章